データベースサーバのフロントエンドとしてAccessを利用するTech TIPS

MySQLやPostgreSQLのようなデータベース・サーバはコマンド・プロンプトからの操作が基本であるが、使い慣れたMicrosoft Accessからアクセスできれば便利である。Microsoft AccessはODBCインターフェイスを介して、現在使われている主要なデータベースサーバとシームレスに接続することができる。

» 2003年10月11日 05時00分 公開
[山田祥寛]
「Tech TIPS」のインデックス

連載目次

対象ソフトウェア:Access 2000/Access 2002



解説

 最近、フリーのバックエンド・データベースとして、UNIXやLinuxなどで広く使われているMySQLやPostgreSQLなどを採用する機会が多くなってきた。読者の中にもすでに業務の中で使用しているという方も少なくないだろう。

 なるほど、コマンド・プロンプト(UNIXでは「シェル」という)からありとあらゆる処理操作を実行できる手軽さは、中上級者にはありがたい。しかし、初級者にとってはそもそもコマンドを入力しなければならないという点からして敷居の高さを感じてしまうであろうし、単純なデータ入力・更新にすら、いちいちINSERTやUPDATEのようなコマンドを入力しなければならないのは、やはり面倒なものである。

 そこで本稿では、初心者でも比較的容易に使いこなすことができるMicrosoft Accessをフロントエンドのユーザー・インターフェイスにして、これらデータベース・サーバにアクセスする方法について紹介する。

 Accessを介することで、単純なデータ入力は、Accessの標準的な機能である「テーブル」や「フォーム」によって行うことができるし、蓄積されたデータを処理したいという場合にも「クエリ」を使えば、エンド・ユーザーが視覚的にデータ分析することが可能である。もちろん、インポート・エクスポート機能などを使用すれば、Microsoft Excelなどのソフトウェアと手軽に連携することもできるだろう。

 それではさっそく、設定までの流れを見てみることにしよう。接続するデータベースサーバによって手順には若干の差があるが、ここでは軽量かつシンプルな機能を旨とするMySQLサーバを例にとってみる。また、本稿ではMySQLサーバ自体のインストールやユーザー設定などについては割愛するので、詳細については@IT Linuxフォーラムの「MySQLインストール完全ガイド」や、筆者の運営する「サーバサイドの学び舎 - WINGS」サイトの「サーバサイド環境設定」などを参考にして欲しい。

操作方法

●手順1―ODBCドライバをインストールする

 Accessからデータベース・サーバにアクセスするためには、それぞれ専用の「ODBC(Open DataBase Connectivity)」ドライバと呼ばれるソフトウェアが必要となる。MySQLサーバの場合には、以下のURLから「Connector ODBC」をダウンロードしてほしい。

 ダウンロードした「MyODBC-3.51.06.exe」(ファイル名はそのバージョン番号によって異なる可能性がある)をダブルクリックするとインストールが開始される。インストール・ウィザードは英語で表記されているが、[Next]ボタンで先に進んでいけば問題ない。

ほかのデータベース用のODBCドライバの入手先

 ほかのデータベースサーバを使用している場合には、それぞれ以下のサイトからダウンロードすること。インストール方法については、各ダウンロードサイトの紹介(またはダウンロードファイルに含まれるドキュメント)などを参照してほしい。


●手順2―ODBCドライバを設定する

 [スタート]メニューから[プログラム]−[管理ツール]−[データソース(ODBC)]を開き([コントロール パネル]−[データソース(ODBC)]でも同じ)、[ユーザーDSN]タブから[追加]をクリックする。

ODBCデータソースの新規追加 ODBCデータソースの新規追加
ODBC経由でデータベースをアクセスするためには、まずデータソースを作成する必要がある。
  (1)ユーザーごとにODBC接続を設定するためには、この[ユーザー DSN]を選択する。システム全体で共通に利用したい場合は、[システム DSN]で[追加]を行う。
  (2)新規追加するためには、これをクリックする。

 「データソースの新規作成」ダイアログが開いたら、データソースドライバとして「MySQL」を選択する。もしも一覧に「MySQL」が存在しない場合には、ODBCドライバのインストールに失敗している可能性があるので、再度手順1を見直してみて欲しい。

データソースの新規作成 データソースの新規作成
データソースとしてMySQLを選択する。
  (1)MySQLが正しくインストールされていると、この項目が表示されるので、これを選択する。

 次に「TDX mysql Driver default configulation」ダイアログが開かれるので、必要な項目を入力する。ここでは、最低限の接続に必要と思われる項目について、概要を紹介しておくことにする。

項目名 概要
Windows DSN name データソースを一意に識別する名前
MySQL host MySQLサーバのホスト名またはIPアドレス
MySQL database name 接続するデータベースの名前
User 接続時に使用するユーザー名
Password 接続時に使用するパスワード

TDX mysql Driver default configulationの入力 TDX mysql Driver default configulationの入力
MySQLサーバに接続するための情報を入力する。

 [OK]をクリックして、データソース名の一覧に設定したデータソース名が追加されれば、設定は成功だ。

●手順3―空の「.mdb」ファイルからMySQLサーバへの接続を設定する

 Microsoft Accessを起動して空の新規データベースを作成し、メイン画面上で[新規作成]をクリックする。

データベースの作成 データベースの作成
空のデータベースを作成もしくはオープンして、メイン画面からテーブルの[新規作成]を実行する。
  (1)[テーブル]を選択する。
  (2)これをクリックする。

 「テーブルの新規作成」ダイアログが表示されたら、「テーブルのリンク」を選択して[OK]をクリックする。

テーブルの新規作成 テーブルの新規作成
外部データベースへのリンクを作成する。
  (1)これを選択する。

●手順4―MySQLサーバへの接続を確立する

 「リンク」ダイアログが表示されたら、[ファイルの種類]から「ODBC Databases ()」を選択する。

リンクの指定 リンクの指定
リンクするデータソースを指定する。
  (1)これを選択する。

 「データソースの選択」ダイアログが起動するので、[コンピュータデータソース]タブから先ほどの手順1で作成したデータソース名「wings」を選択する。なお、もしも手順1でデータソースを作成していない場合には、ここで[新規作成]をクリックすることで新規にデータソースを設定することもできる。

データソースの選択 データソースの選択
最初に作成したODBCデータソースを選択する。
  (1)ODBCデータソースへの接続を行う場合はこれを選択する。
  (2)先ほど作成したデータソースを指定する。
  (3)ここで新規にデータソースを作成することもできる。

 データソースに接続されると、「テーブルのリンク」ダイアログが表示されるので、リンクしたいテーブルを選択する。データベース上のすべてのテーブルをリンクしたい場合には、[すべて選択]をクリックする。

テーブルのリンク テーブルのリンク
データベース中に含まれるテーブルが一覧表示されるので、リンクしたいテーブルを選択して[OK]をクリックする。
  (1)テーブルの一覧。リンクしたいテーブルをクリックして、反転表示させる。複数選択することができる。
  (2)全テーブルを選択したい場合は、これをクリックする。

 一般的に、データベースのテーブルにはレコードを一意に識別する「主キー(プライマリ・キー)」を設定するのが通例であるが、もしも主キーが設定されていないテーブルをリンクした場合、次のような[固有レコード識別子の選択]ダイアログが表示される。これは、主キーが設定されていない場合、テーブルの更新・削除などに際して、正しくデータを同期することができないためだ。このような画面が表示された場合には、主キーとなるべきフィールドを選択するか、MySQLサーバ上で主キーの設定を行って欲しい。

固有レコード識別子の選択 固有レコード識別子の選択
主キーが設定されていないテーブルの場合はこのダイアログが表示されるので、固有レコードとして識別するために適切なフィールドを選択する。
  (1)主キーの設定されていないテーブルの名前。
  (2)キーとして設定したいフィールドを選択する。

 以上、これでMySQLサーバへのリンク設定は完了した。あとは、通常のテーブル同様に、データを登録したり、更新したりすることができる。

 ただし、リンクされたテーブルは[デザインモード]で開いても、その内容を変更することはできないので注意すること(詳細については、「TIPS―データベース・サーバに直接コマンドを発行する」を参照)。また、リンクされたテーブルを[削除]しても、MySQLサーバ上のテーブルは削除されない。あくまで、ここでAccess上に見えているのはMySQLサーバに対するユーザー・インターフェイスであって、テーブルそのものではないということを理解しておいて欲しい。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。