Access VBA入門 | ADO-Connectionオブジェクト(概要)

Access VBA入門

公開日:2017年6月9日 更新日:2017年6月25日

Connectionオブジェクトは、ADOのオブジェクトであり、データベースに接続する際に使用します。

ここでは、Connectionオブジェクトの概要について解説します。

1.Connectionオブジェクトの位置付け

ADODBライブラリのメンバーです。

2.使用目的

ADOは、主に①データベースへの接続と②データ操作に使用しますが、Connectionオブジェクトは①データベースへの接続に使用します。

3.使い方

3-1.事前バインディング

変数宣言と参照の代入には、参照設定を行った後に次のコードを記述します。

'事前バインディング
'Connectionオブジェクトのインスタンス化
Dim CN As ADODB.Connection
'変数CNは例示。自由に設定してください。
Set CN = New ADODB.Connection

'1行で表すことも可能
Dim CN As New ADODB.Connection

参照設定やADOのインスタンス化については、「Access VBA入門 | ADOオブジェクトモデル(概要)」で解説していますので、参照ください。

【参考】実行時バインディング

実行時バインディングによれば、参照設定を行わずにConnectionオブジェクトを使用することができます。ただし、事前バインディングに比べて動作は遅くなります。また、私のPC環境下では、コードの予測入力ができなくなる、引数を設定できないなど、不便と感じることが発生しました。従って、できる限り事前バインディングを使用することをお勧めします。

'実行時バインディング
'Connectionオブジェクトのインスタンス化
Dim CN As Object
'変数CNは例示。自由に設定してください。
Set CN = CreateObject("ADODB.Connection")

3-2.使用例

次のサンプルプログラムは、カレントデータベースに接続した後に、接続状態をメッセージ表示します。

Sub データベース接続の状態確認()

Dim CN As ADODB.Connection  '(1)
'変数CNは例示。自由に設定してください。
Set CN = CurrentProject.Connection  '(2)

MsgBox CN.State   '(3)

CN.Close   '(4)

Set CN = Nothing  '(5)

End Sub

(1)Dim CN As ADODB.Connection
→Connectionオブジェクトの変数CNを宣言しています。

(2)Set CN = CurrentProject.Connection
→本来であれば事前バインディングによるインスタンス化では、上述の通り「Set CN = New ADODB.Connection」と記述します。しかし、例外も存在し、カレントデータベースに接続する場合には、今回のようにCurrentProjectオブジェクトのConnectionプロパティを使用して記述します。

ちなみにCurrentProjectオブジェクトはADOには属さず、Accessライブラリのメンバー(VBAの範囲内のオブジェクト)になります。また、Connectionプロパティは、このCurrentProjectオブジェクトに属するプロパティであり、今回のテーマであるConnectionオブジェクトとは別物になります。誤解しやすのでご注意ください。

(3)MsgBox CN.State
→カレントデータベースへの接続状態をメッセージ表示します。

StateプロパティはConnectionオブジェクトのプロパティです。データベースへの接続状態を数値で表します。例えば、0であれば、データベースは閉じている、1ならばデータベースは開いている状態を表します。

(4)CN.Close
→カレントデータベースから接続を切断します。

CloseメソッドはConnectionオブジェクトのメソッドです。データベースへの接続を切断します。

(5)Set CN = Nothing
→変数CNにNothingを代入することで、オブジェクト参照を解除しています。

この記述によって、インスタンス化のために使用していたPCメモリを解放することができます。Connectionオブジェクトの使用を終了する場合には「Set 変数 = Nothing」を設定しておく、と覚えておきましょう。

4.Connectionオブジェクトのメソッド、プロパティ

Connectionオブジェクトのプロパティ、メソッドは次の通りです。

プロパティ説明
ConnectionStringデータベースへ接続するために必要な情報を設定する。
Stateデータベースの接続状態を数値で表す。
メソッド説明
Openデータベースに接続する。
Closeデータベースを切断する。
Executeコマンドを実行します。
BeginTransトランザクション処理を開始します。
CommitTransトランザクション処理を確定します。
RollBackTransトランザクション処理による変更を取り消します。

各オブジェクトのメソッド、プロパティや、その使い方については別ページにて解説しています。