ray88’s diary

お仕事で困ったとき用の自分用の覚書

ADO データベースへの接続(Connection オブジェクト)

■ConnectionオブジェクトはDBへの接続を保持するオブジェクトです。

Connectionオブジェクトの主なプロパティ

プロパティ 説明
ConnectionString データベースへの接続情報を返す
State データベースへの接続状態を返す

Connectionオブジェクトの主なメソッド

メソッド 説明
Open データベースへの接続を開く
Close データベースへの接続を閉じる
Execute コマンドを実行する
BeginTrans トランザクションを開始する
CommitTrans 変更を保存してトランザクションを終了する
RollbackTrans 変更を取り消してトランザクションを終了する

【カレントデータベースに接続する場合】

Dim CN As ADODB.Connection
SET CN = CurrentProject.Connection

【カレント以外のデータベースに接続する場合】

Dim CN As ADODB.Connection
Set CN = New ADODB.Connection
CN.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                          "Data Source=データベースのパス"
 CN.Open

【データベースファイルにパスワードがかかっている場合の接続方法】

Dim CN As ADODB.Connection
Set CN = New ADODB.Connection
CN.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                      "Data Source=データベースのパス;" & _
                      "Jet OLEDB:Database Password=xxxxx;"
 CN.Open

【参考】
予めConnectionStringプロパティに接続文字列を設定しなくてもOpenメソッドの第一引数に直接接続文字列を指定することでDBに接続できる。

Dim CN As ADODB.Connection
Set CN = New ADODB.Connection
CN.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                          "Data Source=データベースのパス"

■Stateプロパティの戻り値

戻り値 説明
adStateOpen データベースに接続している
adStateClosed データベースに接続していない

【DBの接続状態を確認する/カレントデータベース】

Sub Test1()
    Dim CN As ADODB.Connection
    Set CN = CurrentProject.Connection
    Select Case CN.State
    Case adStateOpen
        MsgBox "データベースに接続しています"
    Case adStateClosed
        MsgBox "データベースに接続していません"
    End Select
    Set CN = Nothing
End Sub

【DBの接続状態を確認する/カレント以外のデータベース】

Sub Test2()
    Dim CN As ADODB.Connection
    Set CN = New ADODB.Connection
    CN.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                          "Data Source=" & CurrentProject.Path & _
                          "\test.accdb"
    CN.Open
    Select Case CN.State
    Case adStateOpen
        MsgBox "データベースに接続しています"
    Case adStateClosed
        MsgBox "データベースに接続していません"
    End Select
    CN.Close
    Set CN = Nothing
End Sub

■定数の値確認用参考URL およびプロバイダの設定値確認用URL
データベース(Access 等)に接続(ADO) | ExcelWork.info