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 を参照するには
Visual Basic で、[ プロジェクト ] メニューの [ 参照設定 ] をクリックします。
一覧の [ Microsoft ActiveX Data Objects x.x Library ] をクリックします。 少なくとも、次のライブラリが選択されていることを確認します。
- Visual Basic for Applications
- Visual Basic ランタイム オブジェクトとプロシージャ
- Visual Basic オブジェクトとプロシージャ
- OLE オートメーション
[ OK ] をクリックします。
たとえば、Microsoft Access を使用して、Visual Basic for Applications と同じように簡単に ADO を使用できます。
Microsoft Access から ADO を参照するには
Microsoft Access の [データベース] ウィンドウの [モジュール] タブで、モジュールを選択または作成します。
[ ツール ] メニューの [ 参照設定 ] を選択します。
一覧の [ Microsoft ActiveX Data Objects x.x Library ] をクリックします。 少なくとも、次のライブラリが選択されていることを確認します。
- Visual Basic for Applications
- Microsoft Access 11.0 オブジェクト ライブラリ (またはそれ以降のバージョン)
[OK] をクリックします。
Visual Basic での ADO オブジェクトの作成
オートメーション変数を作成し、その変数に対するオブジェクトのインスタンスを作成するには、Dim メソッドまたは CreateObject メソッドを使用できます。
Dim
Dim の New キーワードを使用すると、一度に 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 コード例」を参照してください。