Windows TIPS
[Office Master]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

AccessをMSDEのフロントエンドとして利用する

解説をスキップして操作方法を読む

山田 祥寛
2004/03/20
 
対象ソフトウェア
Access 2000
Access 2002
Access 2003
無償の企業向けデータベース・エンジンであるMSDEは、コマンド・プロンプトから操作することが基本であるが、使い慣れたAccessからアクセスできれば便利である。
Accessプロジェクトを介することで、AccessをMSDEのフロントエンドとして利用することができる。
 
解説

 別稿のWindows TIPS「データベース・サーバのフロントエンドとしてAccessを利用する」では、MySQLやPostgreSQL、MSDE(Microsoft SQL Server Desktop Engine)など主要なデータベース・サーバのフロントエンドとして、Accessを利用する方法を紹介した。これらデータベース・サーバは、標準機能としてGUIベースの管理ツールを持たない。つまり、ただ単にテーブルの中身を確認するだけのためにも、いちいちコマンドライン上からSQL命令を発行しなければならないのだ。しかし、Accessを介することで、単純なデータ入力は、Accessの標準的な機能である「テーブル」や「フォーム」によって行うことができるし、蓄積されたデータを処理したいという場合にも、「クエリ」を使えば、エンド・ユーザーが視覚的にデータ分析することが可能である。もちろん、インポート/エクスポート機能などを使用すれば、Excelなどのソフトウェアと手軽に連携することもできるだろう。これまでとかく中・上級者向けというイメージが強かったMySQLやPostgreSQL、MSDEのようなデータベース・サーバを、初級者が自由に利用することが可能になるのだ。

 しかし、Windows TIPS「データベース・サーバのフロントエンドとしてAccessを利用する」で紹介した手法には、一定の制限があった。この方法で、ODBCインターフェイスによってリンクしたテーブルの内容を参照することはできる。クエリ機能を利用して、既存のデータを加工することもできる。しかし、テーブル・デザインを変更しようとした場合でも、Access標準のテーブル・デザインを使用することはできない。また、テーブルそのものを作成・削除しようにも、いわゆるAccessのテーブルを作成・削除するようにはできなかった。これらの処理を行うためには、パススルー・クエリを介する必要がある。パススルー・クエリは決して特殊な機能ではないが、一連のコマンドをコマンドライン・ベースで発行する必要があり、Accessのアプリケーション内で一元的に操作できるというほかは、結局、コマンド・プロンプトを利用しているのと変わりはない。GUIベースとしてのAccessのメリットを享受することができないのだ。

 そこで本稿では、Accessのプロジェクト機能を利用してMSDEデータベースに接続する方法について紹介する。接続先のデータベースこそMSDEに限定されるが、テーブルの作成・削除、テーブル・デザインの変更はもちろん、通常の「.mdb」ファイルでは利用することのできないストアド・プロシージャやビューの利用が可能になる。昨今、部門内で簡単なデータベースの共有が求められるケースが少なくないが、そのような場合にも、本来パーソナル用途を想定したAccessよりも複数ユーザーによる同時アクセスを想定したMSDEを使う方がなにかと都合が良いのは間違いないだろう。

 それでは早速、作成までの流れを見てみることにしよう。

 なお、以下の操作を実行するためには、あらかじめMSDEをインストールしておく必要があるが、これについては本稿では割愛する。詳細については、Insider .NETフォーラムの連載「ASP.NETで学ぶVisual Studio .NETの魅力」や、筆者の運営する「サーバサイド技術の学び舎 - WINGS」サイトの「サーバサイド環境構築設定」などを参考にしてほしい。


操作方法

手順1―MSDEの新規プロジェクトの作成を行う

 ODBCインターフェイス経由で接続する場合と異なり、プロジェクト経由でMSDEへの接続を確立する場合には、特別なソフトウェアをインストールする必要はない。

 Accessを起動し、メニューバーから[ファイル]−[新規作成...]を選択する。[新規作成]ダイアログが起動するので、MSDE上にすでに接続対象のデータベースが用意されているかどうかに応じて、[プロジェクト(新しいデータベース)]、または[プロジェクト(既存のデータベース)]のいずれかを選択すればよい。本TIPSでは、MSDE上にデフォルトで用意されたmasterデータベースに対して接続することにするので、[プロジェクト(既存のデータベース)]を選択する。

プロジェクトの新規作成
MSDEのフロントエンドとしてAccessを利用するには、通常の「データベース」ではなく、「プロジェクト」を作成する必要がある。
  すでにMSDE上に存在するデータベースに対して接続する場合には、[プロジェクト(既存のデータベース)]を選択する。
  このボタンをクリックして先へ進む。

 [データベースの新規作成]ダイアログが開くので、ファイル名に「msde.adp」と入力し、任意のフォルダにプロジェクトを作成する。

手順2―MSDEへの接続設定を定義する

 次に、MSDEへの接続設定を定義するための[データリンクプロパティ]ダイアログが表示されるので、必要な項目を入力する。ここでは、最低限、接続に必要と思われる項目について、概要を紹介しておく。

「データリンクプロパティ」の入力
[接続]タブでMSDEに接続するための情報を入力する。
  MSDEのホスト名またはIPアドレス。「(local)」とすると、ローカル・マシン上で動作しているMSDEへ接続する。ドロップダウンリストの右端にある下向きの▼をクリックすると利用可能なサーバ名(SQL ServerおよびMSDEサーバ)の一覧が表示されるので、そこから選んでもよい。右の[更新]ボタンをクリックするとサーバ名の一覧が更新される。
  Windows統合セキュリティを使って(現在OSにログオンしているユーザー・アカウントを使って)、データベースへ接続する。
  以下で指定された特定のユーザー名とパスワードを使用してログオンする。
  接続のために使用するユーザー名。
  パスワード。
  パスワードが空の場合はこれをチェックする。
  この接続のユーザー名とパスワードを保存して自動的に接続するためにはこれをチェックする。
  データベースを選択する。ドロップダウンリストの右端にある下向きの▼をクリックすると利用可能なデータベース名の一覧が表示される。
  これをクリックすると接続のための設定が正しいかどうかチェックできる。

 接続設定に誤りがないかどうかは、同プロパティ・シート上の[接続のテスト]によって確認することができる。以下のようなダイアログが表示されれば成功だ。

[Microsoftデータリンク]ダイアログ
上で入力した接続設定が正しければ、このような成功のダイアログが表示される。

 もしも接続に失敗したというダイアログが表示された場合には、いま一度、設定の内容を再確認すると同時に、MSDEそのものが起動しているかどうかを確認してほしい。

 接続に成功していることが確認できたら、[OK]をクリックして完了だ。なお、上記の設定で接続を確立した場合、Access 2003では、以下のような警告ダイアログが表示される場合がある。

[Microsoft Office Access]ダイアログ
パスワードが平文(暗号化されない状態のテキスト)で保存されることを警告するメッセージ。
  平文のまま保存するにはこれをクリックする。
  パスワードの保存を行わない場合はこれをクリックし、先のダイアログで[パスワードを保存する]のチェックボックスをオフにする。

 これは、[データリンク プロパティ]ダイアログで入力されたパスワードが平文で保存されることに対する警告のメッセージだ。つまり、データソースに直接アクセスできるユーザーに対しては、暗号化されない無防備な状態のパスワードがそのまま露出する可能性があるということだ。

 厳密なセキュリティを要さない環境にあるならば、そのまま[パスワードの保存]を選択すればよいし、もしも第三者に対するパスワードの漏えいを懸念するならば、[キャンセル]ボタンをクリックし、先ほどの[データリンクプロパティ]ダイアログで[パスワードを保存する]のチェックを外せばよい。ただし、この場合にはプロジェクト・ファイルを開くたびに、ログオン・パスワードの入力を求められることになるので、注意すること。

手順3―MSDEデータベースを利用する

 以上で、プロジェクト経由でのMSDEへの接続設定は完了だ。以下のようなデータベース・ダイアログに、masterデータベース内のテーブルが一覧表示されるので、あとは通常の「mdb」ファイル同様、テーブルの登録や削除、データの更新・削除などを行うことができる。

[msde:データベース]ダイアログ
MSDEサーバ内のmasterデータベースの情報が表示される。通常の「.mdb」ファイルとは異なり、「ビュー」「ストアド・プロシージャ」などのオブジェクトが用意されている点にも注目してほしい。

 ただし、ここで作成したプロジェクト・ファイルは、あくまでMSDEサーバに対するフロントエンドであり、「.mdb」ファイルのようにデータベースそのものを表しているわけではない点に注意すること。プロジェクト・ファイルからは一連のデータベース操作を行うことが可能であるが、プロジェクト・ファイルそのものを削除しても、MSDE上の当該データベースは削除されない。End of Article

関連記事
  Windows Tips:データベース・サーバのフロントエンドとしてAccessを利用する(Windows Server Insider)
  ASP.NETで学ぶVisual Studio .NETの魅力(Insider .NET)
     
  関連リンク
  サーバサイド技術の学び舎 - WINGSサイト
  サーバサイド環境構築設定(WINGS)
     
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間