ADO を使用して Access データベースを使用する

Microsoft Office 2000/Visual Basic プログラマーズ ガイド   

このトピックでは、ADO を使用して、Access データベースの一般的なデータ アクセス プログラミング作業を実行する方法をいくつか説明します。DAO プログラミング モデルは、長年 Access データベースで使用されてきており、多くの Office 開発者にとってなじみが深いものであるため、このトピックでは、DAO および ADO のオブジェクトや、プロパティ、メソッド間でのマッピングについて説明します。またここでは、外見上類似しているメソッドやプロパティの相違点についても解説しています。この章で特定の ADO および DAO オブジェクト、プロパティ、およびメソッドについて完全には説明しませんが、詳細については DAO および ADO に付属のオンライン ドキュメントを参照してください。

DAO の持つ機能を提供する ADO オブジェクト モデルは、次の 3 つに区別されます。

  • Microsoft ActiveX Data Objects 2.1 (ADODB)

  • Microsoft ActiveX Data Objects Extensions for DDL and Security 2.1 (ADOX)

  • Microsoft Jet and Replication Objects 2.1 (JRO)

この機能セットのうち 1 つのサブセットのみが必要なアプリケーションも数多くあるため、ADO の機能は、これらの 3 つのモデルに分けられます。所定のタスクに必要とされるオブジェクト モデルのみを選択し、そのタスクに必要なオブジェクトだけをメモリにロードしてください。

これら 3 つの ADO オブジェクト モデルは、それぞれ次の機能に対応しています。

  • **データの操作   **Microsoft ActiveX Data Objects 2.1 (ADODB) オブジェクト モデルにより、クライアント アプリケーションが、任意の OLE DB プロバイダを通してデータベース サーバー内のデータにアクセスし、それを操作できるようになります。特に、Access データベース (.mdb ファイル) を使用する場合は Microsoft Jet 4.0 OLE DB プロバイダを必ず使用してください。

  • データの定義およびセキュリティ   DDL および Security 2.1 (ADOX) オブジェクト モデル用の ADO Extensions には、データベース、テーブル、およびクエリの構造を作成、変更するためのオブジェクト、プロパティ、およびメソッドが含まれています。また、ADOX により、ユーザー レベルのセキュリティのあるユーザーおよびグループ アカウントの作成、変更ができ、オブジェクトについての権限の許可および拒否ができます。ADOX オブジェクト モデルは、そのインターフェイスに対応する任意の OLE DB プロバイダで使用できるように設計されており、記述の時点で、Access および SQL Server のデータベースの両方でデータ定義に ADOX を使用することができますが、ADOX でセキュリティを使用する時は Access データベースでのみ可能です。この章では、ADOX の データ定義言語 (DDL) 機能について説明します。ADOX のセキュリティ機能の詳細については、第 18 章「Access データベースにセキュリティを設定する」を参照してください。

    ADOX オブジェクト モデルのトップレベルのオブジェクトは Catalog オブジェクトです。これにより、データベースの構造を使用するときに使う Tables、Views、Procedures などのコレクションへアクセスすることができ、また、セキュリティを使用するときに使う Users および Groups コレクションへアクセスすることも可能です。それぞれの Catalog オブジェクトは、基礎となるデータ ソースへの 1 つの Connection のみに関連付けられています。

    ADOX モデルは、DAO モデルとは多少異なります。DAO には、ユーザーについてのセッションを定義しても、データ ソースは定義しない Workspace オブジェクトがあります。DAO Workspace **** オブジェクトは、セキュリティ アカウント使用に必要な Users および Groups コレクションのコンテナの役目も果たします。DAO では、データベースを開かずに、Workspace の作成や、セキュリティ情報の取得や変更が可能です。ADOX Catalog オブジェクトを使用するときは、セキュリティ情報にアクセスする前に、データベースへの接続を必ず指定してください。

  • レプリケーションおよび Jet Engine Services   Microsoft Jet and Replication Objects 2.1 (JRO) オブジェクト モデルには、レプリカを作成、変更、同期することができるオブジェクト、プロパティ、メソッドなどがあります。これは、特に Microsoft Jet 4.0 OLE DB プロバイダで使用するように設計されています。ADO や ADOX とは違い、JRO は、Access データベース以外のデータベースでは使用できません。

    JRO オブジェクト モデルにおいて、トップ レベルのオブジェクトは Replica オブジェクトです。Replica オブジェクトは、新しいレプリカの作成、既存のレプリカのプロパティの取得および変更、および他のレプリカとの変更の同期などができます。これは、Database オブジェクトがこのタスクを担っている DAO とは異なります。

    JRO オブジェクト モデルには、データベースを圧縮する機能、および任意の種類の Access データベースへの接続についてキャッシュからのデータをリフレッシュする機能といった Jet データベース エンジン特有の 2 つの機能にアクセスできるようにするための独立した JetEngine オブジェクトも含まれます。

    この章では、JetEngine オブジェクトにある一部の機能についてのみ説明します。JRO のレプリケーション機能の詳細については、第 16 章「マルチユーザー データベース ソリューション」を参照してください。