<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--外部データの活用
  1 2 3 4 5



■外部のデータベースのテーブルをインポートまたはリンクする

たとえば、会社の中でのいろいろな業務で入力した売上伝票とかいろいろなデータが、OracleとかMS-SQLServerとか、そういったデータベースで運用されているとします。本来は、データを照会したり印刷したりする画面とか仕組みとかを作りこんでおくべきところですけれど、そこまで開発するノウハウも技術も時間もあんまりないし・・・じゃあ、とりあえずAccess使ってちょっと作ってみるか、とか、データはOracleのこのテーブルの中にあるから各自自由にごらんになってください、とか、そういう場合に、AccessからOracleのテーブルをリンクして使用する、なんていうことをやることもあったりなんかします。

これは、Accessだけのお話じゃ済みませんから、その「外部のデータベース」を管理している人とか部門とかの人と必ず相談してくださいね。あたりまえのことですけど、Oracleのテーブルと一口に言ったって、会社内で全部べろーんと利用できるようにしているわけじゃないと思います。Oracleなんか使ってるってことは、当然、データ領域を分けたり、セキュリティの管理とかきっちりやってるんでしょうから、テーブルの中のデータを利用するにあたって、社内のルールやポリシーみたいなものがあるはずです(Oracle導入しててこういうの一切やってない会社ってありえない。もったいない)。

とりあえずどんな感じか、だけお話しますね。

会社の中に基幹業務用のデータベースがあって、皆さんはそのデータベースの中のデータを使って何か作業をしなくてはならなくて、それはこれからお話する方法で接続が可能なデータベースで、社内で自由に使ってもよいような管理ルールになっているかどうかそのデータベースを管理管轄している部署に尋ねてみて、使わせてもらえそうだったら、これからお話する操作方法を参考にしてください。

まず、ほしい情報が入ってるデータベースがなんなのか、を知らなくてはなりません。
そして、そのデータベースを利用するための設定やソフトウェア等が、お使いのパソコンに導入されているか、設定されているかを知る必要があります。これは、前にも申しましたように、会社の中でデータベースを統括している部署とか担当者と相談してくださいね。

これは、もちろん、技術的な部分のこともありますけど、ふつう、Oracleなんか使ってるんだったら当然、「セキュリティ」の管理をしっかりやっているはずなんです。つまり、Oracleのデータベース環境にたくさんのテーブルがあって、そのテーブル全部を社内の人全員に見せちゃっていいものかどうか、みんながみんなデータの更新とか削除とかできてもいいもんかどうか・・・人によって、データの修正ができる人と、見るだけの人と分けたり、部署によって見せないテーブルとか分けたり・・・。こういう管理をいろいろやってるはずです。ぜんぜんやってないってことはないと思うんですけど・・・。そうするとですね。Oracleのそのデータベースの中のテーブルを利用するための「ユーザーIDとパスワード」っていうものがあって、それを正確に入力した人だけが、データベースの中のテーブルとかを見れる、っていう仕組みになってるはず。

なので、そのデータベースの「使用権限」みたいなものを管理している部署とか担当者に申請して、あらかじめ取得しておく必要がありますね。
そのとき、「Accessから参照できるようにしたいんですけど」みたいな感じでお話になれば、これからお話するようなことはひととおりガイドがあると思いますよ。

Accessから外部のデータベースのテーブルのデータを利用する方法は、基本的に「ODBC経由」という方法になります。

ODBCというのは、Open Database Connectivityの略で、Microsoftが最初に言い出した「アプリケーションとデータベースとの間の共通インターフェース」のひとつです。というとなんかとっても難しそうですけど・・・。

たとえば・・・・パソコンとプリンタってぜんぜん違う機械なのにパソコンから「印刷」ってやると、プリンタにデータが送られてきれいに印刷されるじゃないですか。これって、ただケーブルつないだだけじゃダメなんですよ。パソコンのデータをプリンタに送ったり、プリンタから「印刷終わりましたよ」っていうような信号を受け取ったり、そういうやり取りが必要になるわけなんですけど、パソコンはプリンタじゃないしプリンタはパソコンじゃない。共通する「言葉」は持ってないんです。

なので、パソコンとプリンタの間に立って、通訳やらデータの受け渡しやらもろもろの仕事をしてくれるのが「プリンタドライバ」というものです。実態は、Windowsの中に組み込まれた「ソフトウェア」ですね。プリンタドライバはプリンタの種類ごとに用意されてます。一般的にお店で売ってるプリンタなら、Windowsの中にあらかじめ用意されてますけど、新製品とか、すごく特殊なプリンタの場合は、プリンタ買うとフロッピーディスクとかCD-ROMとかの状態で同梱されてるのでこいつをパソコンにインストールして使います。まあ、メーカーとか機種が違えば印刷の仕方も違いますもんね。だから、プリンタドライバと実際に使ってるプリンタが合わないと印刷は出ないし、出ても化け化け文字で読めなかったりプリンタが暴走したりします。

と、プリンタドライバの話になっちゃった。まあ、でも、ODBCというのも、ODBCドライバというものがやっぱりあって、ODBCドライバがOracleとかよそさまのデータベースとの仲介役をやってくれます。つまり、OracleのテーブルをAccessで使いたいなら、OracleのODBCドライバをインストールして、設定してやらないといけませんね。
ODBCドライバは、Oracleとか有名どころのデータベースなら、Windowsにはじめから用意されているものもあります。Oracleなんかはそうかもしれないですね。こういうのは必ず「Microsoft・・・・」という名前になってるはずです。Microsoftが作ったOracleのODBCドライバ、ということですね。

Oracleを使っているなら、各パソコンにOracleのクライアント側のツールをインストールしていると思います。Oracle for WindowsNT とかOracle for Windows95とか。こういうのをインストールすると、この中にOracleのODBCドライバが含まれています。こちらは、Oracle社が作ったOracleODBCドライバ、ということになります。
どっちを使っても同じようなもんですが、基本的に「違う会社から提供されているもの」と考えて、別のものと思った方がよいですね。つまり、何かトラブルが起こったり不具合かと思う症状が出たとき、どっちのドライバ使ってるかによって、どこに問い合わせなければならないのかが変わってくるってことです。

で、こういうのは、会社の中で「どっちを使うか」統一すべきでしょう。両方繰り返し使ってみて、比較してみて決定するより他にありません。「OracleODBCとMicrosoftODBC for Oracleと、とどっちがいいんですか?」とか聞かれることもたまにあるんですけど・・・こういうのは、その会社、そのデータベースサーバ、テストしている人、利用している人・・・で、決めていってくださいね。

Windowsのコントロールパネルの中に、ODBCなんとかっていうアイコンがあったら見てみてください。
みなさんのパソコンにどういったODBCドライバが用意されているのか、見ることができます。

で、もし、新しくどっ化のデータベースに接続する、となったら、この中にODBCの設定をやらねばなりません。
Windows2000やNTを使ってる人は、「ユーザーDSN」のとこに設定するのと「システムDSN」のとこに設定するのでは少し意味合いが違いますから、詳しいことはヘルプを読むといたしましょう。

どんな感じで設定するかというと・・・たとえば、ユーザーDSNというところに、MicrosoftのOracleODBCを追加するとしたら、「追加」のボタンをクリックして、

該当するODBCドライバを選んで、

そのOracleデータベースがあるサーバーマシンの名称(多分ふつうは、データベース別名みたいなのをつけてるんじゃないかと思います)と、なんか名前をつけて、OKすればオッケーです。

ODBCの設定が正しく完了していれば、AccessからOracleとかのデータベースの中のテーブルを使うことができます。
じゃあ・・・具体的に、ODBCドライバ経由で、テーブルのリンクまたはインポートの手順を書いてみますね。

途中までは同じです。
メニューバー[ファイル]→[外部データの取り込み]で、「インポート」もしくは「テーブルのリンク」を選びます。

皆さんのパソコンから、接続できるデータベースの一覧(データのある場所、源、という意味で、データソースって言ってますね)が表示されます。要するに、ODBCの設定の一覧が出てくるってことになります。
上で、このデータベースを使うために作ったODBCの設定を選びます。

すると、「ユーザー名とパスワードとサーバー名を入力しなさい」とか、なんかそんな感じのダイアログが出てきます。これは、どのODBCドライバを使ってるかによって形がちょっと違うと思います。サーバー名は、あらかじめなんかしら表示されてくると思いますので、入力するのはユーザーIDとパスワードでしょう。

あらかじめ、データベースを管理している部門に申請して用意してもらったユーザーIDとパスワードを入力します。
ここで入力するのは要するに、ちょっと前にお話した、接続先のデータベースのセキュリティをくぐるための「ユーザーアカウント」です。

テーブルの一覧が出てくるので、ここで、インポートまたはリンクしたいテーブルを選びます。

たまに、こんな画面になることがあります。
「このテーブル、インポート又はリンクしようとしてますが、主キーに当たるものがよくわからないのですが、どうしましょう?」と指示を仰いでいる画面です。
元のテーブルのデザインを調べておいて、正しくキーを設定すべきですね。

と、ODBCドライバ経由でリンクしたテーブルは、下のように地球儀みたいなアイコンになります。


今日ご紹介したのは、ほんとにごくごく一部です。
外部のデータを活用する、と一口に言っても、いろんなデータがあると思いますし、どうやって活用するかによって、あらかじめ確認しておかなくてはならないこととか、いろいろ違ってくると思います。

いろんなデータをAccessで使っていくことができそうですね。
お手持ちのデータ、たくさん取り込んで、どんどん活用していってくださいね。



(オシマイ)