次の方法で共有


Microsoft Visual Basic での ADO の使用

適用先: Access 2013、Office 2013

ADO プロジェクトのセットアップおよび ADO コードの作成は、Visual Basic と Visual Basic for Applications のどちらを使用する場合でもほとんど同じです。 このトピックでは、Visual Basic と Visual Basic for Applications での ADO の使用方法と両者の相違点について説明します。

ADO ライブラリの参照

プロジェクトでは ADO ライブラリを参照する必要があります。

Microsoft Visual Basic から ADO を参照するには

  1. Visual Basic で、[ プロジェクト ] メニューの [ 参照設定 ] をクリックします。

  2. 一覧の [ Microsoft ActiveX Data Objects x.x Library ] をクリックします。 少なくとも、次のライブラリが選択されていることを確認します。

    • Visual Basic for Applications
    • Visual Basic ランタイム オブジェクトとプロシージャ
    • Visual Basic オブジェクトとプロシージャ
    • OLE オートメーション
  3. [ OK ] をクリックします。

たとえば、Microsoft Access を使用して、Visual Basic for Applications と同じように簡単に ADO を使用できます。

Microsoft Access から ADO を参照するには

  1. Microsoft Access の [データベース] ウィンドウの [モジュール] タブで、モジュールを選択または作成します。

  2. [ ツール ] メニューの [ 参照設定 ] を選択します。

  3. 一覧の [ Microsoft ActiveX Data Objects x.x Library ] をクリックします。 少なくとも、次のライブラリが選択されていることを確認します。

    • Visual Basic for Applications
    • Microsoft Access 11.0 オブジェクト ライブラリ (またはそれ以降のバージョン)
  4. [OK] をクリックします。

Visual Basic での ADO オブジェクトの作成

オートメーション変数を作成し、その変数に対するオブジェクトのインスタンスを作成するには、Dim メソッドまたは CreateObject メソッドを使用できます。

Dim

DimNew キーワードを使用すると、一度に ADO オブジェクトの作成とインスタンス化を行うことができます。

 
Dim conn As New ADODB.Connection 

または、 Dim ステートメントの宣言とオブジェクトのインスタンス化を 2 段階で行うこともできます。

 
Dim conn As ADODB.Connection 
Set conn = New ADODB.Connection 

注:

プロジェクトで ADO ライブラリが正しく参照されていれば、Dim ステートメントで ADODB progid を明示的に使用する必要はありません。 ただし、明示的に使用することで、他のライブラリとの命名の競合を確実に回避できます。

たとえば、同じプロジェクトに ADO と DAO に対する参照がどちらも含まれる場合は、 Recordset オブジェクトをインスタンス化するときに、次のコードで示すように、どちらのオブジェクト モデルを使用するのかを指定する修飾子を追加する必要があります。

Dim adoRS As ADODB.Recordset

Dim adoRS As DAO.Recordset

CreateObject

CreateObject メソッドでは、2 つの異なる手順で宣言とオブジェクトのインスタンス化を行う必要があります。

 
Dim conn1 
Set conn1 = CreateObject("ADODB.Connection") As Object 

CreateObject でインスタンス化されたオブジェクトは遅延バインドされているため、厳密に型指定されず、コマンド ライン補完が無効になります。 ただし、プロジェクトからの ADO ライブラリの参照をスキップでき、特定のバージョンのオブジェクトをインスタンス化できます。 例:

 
Set conn1 = CreateObject("ADODB.Connection.2.0") As Object 

また、ADO Version 2.0 タイプ ライブラリに対する参照を明確に作成し、オブジェクトを作成することで、これを実現することもできます。

CreateObject メソッドでのオブジェクトのインスタンス化は、通常、 Dim ステートメントを使用する場合より時間がかかります。

イベントを処理する

Microsoft Visual Basic で ADO イベントを処理するには、WithEvents キーワード (keyword)を使用してモジュール レベルの変数を宣言する必要があります。 この変数は、クラス モジュールの一部としてのみ宣言可能で、モジュール レベルで宣言する必要があります。 ADO イベントの処理の詳細については、「 第 7 章: ADO イベントの処理」を参照してください。

Visual Basic の例

ADO のマニュアルには、Visual Basic での例が数多く含まれています。 詳細については、「 Microsoft Visual Basic の ADO コード例」を参照してください。