Microsoft Visual Basic および Visual Basic for Applications での ADO の使用Using ADO with Microsoft Visual Basic and Visual Basic for Applications

Visual Basic と Visual Basic for Applications のどちらを使用する場合でも、ADO プロジェクトの設定と ADO コードの記述は似ています。Setting up an ADO project and writing ADO code is similar whether you use Visual Basic or Visual Basic for Applications. このトピックでは、Visual Basic と Visual Basic for Applications の両方で ADO を使用する方法について説明し、相違点について説明します。This topic addresses using ADO with both Visual Basic and Visual Basic for Applications and notes any differences.

ADO ライブラリの参照Referencing the ADO Library

ADO ライブラリは、プロジェクトによって参照されている必要があります。The ADO library must be referenced by your project.

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

  1. Visual Basic で、[プロジェクト] メニューの [参照] を選択します。In Visual Basic, from the Project menu, select References....

  2. 一覧から [ Microsoft ActiveX データオブジェクト2.X ライブラリ] を選択します。Select Microsoft ActiveX Data Objects x.x Library from the list. 少なくとも次のライブラリが選択されていることを確認します。Verify that at least the following libraries are also selected:

    • Visual Basic for ApplicationsVisual Basic for Applications

    • Visual Basic ランタイムオブジェクトとプロシージャVisual Basic runtime objects and procedures

    • Visual Basic のオブジェクトとプロシージャVisual Basic objects and procedures

    • OLE オートメーションOLE Automation

  3. [OK] をクリックします。Click OK.

ADO は、たとえば、Microsoft Access を使用して、Visual Basic for Applications と同様に簡単に使用できます。You can use ADO just as easily with Visual Basic for Applications, by using Microsoft Access, for example.

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

  1. Microsoft Access で、データベースウィンドウの [モジュール] タブでモジュールを選択または作成します。In Microsoft Access, select or create a module from the Modules tab in the Database window.

  2. [ツール] メニューの [参照] をクリックします。On the Tools menu, select References....

  3. 一覧から [ Microsoft ActiveX データオブジェクト2.X ライブラリ] を選択します。Select Microsoft ActiveX Data Objects x.x Library from the list. 少なくとも次のライブラリが選択されていることを確認します。Verify that at least the following libraries are also selected:

    • Visual Basic for ApplicationsVisual Basic for Applications

    • Microsoft Access 8.0 オブジェクトライブラリ (またはそれ以降)Microsoft Access 8.0 Object Library (or later)

    • Microsoft DAO 3.5 オブジェクトライブラリ (またはそれ以降)Microsoft DAO 3.5 Object Library (or later)

  4. [OK] をクリックします。Click OK.

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

この変数のオートメーション変数とオブジェクトのインスタンスを作成するには、 DimまたはCreateObjectの2つのメソッドを使用できます。To create an automation variable and an instance of an object for that variable, you can use two methods: Dim or CreateObject.


DimNewキーワードを使用すると、1回の手順で ADO オブジェクトのインスタンスを宣言および作成できます。You can use the New keyword with Dim to declare and create instances of ADO objects in one step:

Dim conn As New ADODB.Connection

また、 Dimステートメントの宣言とオブジェクトのインスタンス化も、次の2つの手順になります。Alternatively, the Dim statement declaration and object instantiation can also be two steps:

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


ADODBプロジェクトで ADO ライブラリを正しく参照している場合は、 Dimステートメントで progid を明示的に使用する必要はありません。It is not required to explicitly use the ADODB progid with the Dim statement, assuming you have correctly referenced the ADO library in your project. ただし、これを使用すると、他のライブラリとの名前の競合を防ぐことができます。However, using it ensures that you will not have naming conflicts with other libraries.


たとえば、同じプロジェクトに ADO と DAO の両方への参照を含める場合は、次のコードのように、レコードセットオブジェクトをインスタンス化するときに使用するオブジェクトモデルを指定するための修飾子を含める必要があります。For example, if you include references to both ADO and DAO in the same project, you should include a qualifier to specify which object model to use when instantiating Recordset objects, as in the following code:

Dim adoRS As ADODB.Recordset
Dim daoRS As DAO.Recordset


CreateObjectメソッドでは、宣言とオブジェクトのインスタンス化は、次の2つの独立した手順でなければなりません。With the CreateObject method, the declaration and object instantiation must be two discrete steps:

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

CreateObjectでインスタンス化されたオブジェクトは遅延バインディングされます。つまり、厳密に型指定されていないため、コマンドライン補完は無効になります。Objects instantiated with CreateObject are late-bound, which means that they are not strongly typed and command-line completion is disabled. ただし、プロジェクトから ADO ライブラリを参照することはできません。また、特定のバージョンのオブジェクトをインスタンス化することができます。However, it does allow you to skip referencing the ADO library from your project, and enables you to instantiate specific versions of objects. 次に例を示します。For example:

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

これを行うには、特に ADO バージョン2.0 タイプライブラリへの参照を作成し、オブジェクトを作成します。You could also accomplish this by specifically creating a reference to the ADO version 2.0 type library and creating the object.

CreateObjectメソッドを使用したオブジェクトのインスタンス化は、通常、 Dimステートメントを使用するよりも遅くなります。Instantiating objects by using the CreateObject method is typically slower than using the Dim statement.

イベントの処理Handling Events

Microsoft Visual Basic で ADO イベントを処理するには、 WithEventsキーワードを使用してモジュールレベルの変数を宣言する必要があります。In order to handle ADO events in Microsoft Visual Basic, you must declare a module-level variable using the WithEvents keyword. 変数は、クラスモジュールの一部としてのみ宣言でき、モジュールレベルで宣言する必要があります。The variable can be declared only as part of a class module and must be declared at the module level. ADO イベントの処理の詳細については、「 Ado イベントの処理」を参照してください。For a more thorough discussion of handling ADO events, see Handling ADO Events.

Visual Basic の例Visual Basic Examples

ADO ドキュメントには、多くの Visual Basic の例が含まれています。Many Visual Basic examples are included with the ADO documentation. 詳細については、「 Microsoft Visual Basic の ADO コード例」を参照してください。For more information, see ADO Code Examples in Microsoft Visual Basic.

参照See Also

Microsoft ActiveX データオブジェクト (ado) ado を使用してスクリプト言語で ado を使用する Microsoft Visual C++Microsoft ActiveX Data Objects (ADO) Using ADO with Microsoft Visual C++ Using ADO with Scripting Languages