ADOに関する説明とデータベースに接続する記述 データベースを操作するためのオブジェクトをもつライブラリ レコード単位で条件分岐して更新を行うなどの細かな操作を行うことができる ・Connection_DBへの接続を保持 Connectionオブジェクトを使用してデータベースに接続する ConnectionString_接続情報を返す Open_接続を開く ※ADODB_ADOが提供するコンポーネントの名前 書式: ConnectionStringプロパティにて以下の2点を設定 書式3:Openメソッドの第1引数に直接接続文字列を指定 ▼記述例▼
ADOとは、その利用場面
どんなライブラリ
※正式名称:Active Data Object利用場面
Access以外のデータベースを操作できるADOのオブジェクト
主なオブジェクトの種類
・Command_DBに対するコマンドを保持
・Recordset_何かしらの処理によって設定したレコードの集まりを保持
・Field_設定したフィールドを保持
・Property_プロパティを保持
・Error_エラーを保持
【Connection】データベースへの接続
プロパティ
State_接続状態を返す
→接続中:adStateOpen / 接続なし:adStateClosed
メソッド
Execute_コマンドを実行
BeginTrans_トランザクション(ある処理単位の処理)を開始
CommitTrans_変更を保存したうえでトランザクションを終了
RollbackTrans_変更は保存せずにトランザクションを終了
Close_接続を閉じる【実践】現在データベースに接続中かどうかを確認する
カレントプロジェクトのデータベースに接続する場合の記述
Dim オブジェクト変数 As ADODB.Connection 'Connectionオブジェクトのオブジェクト変数を宣言
Set オブジェクト変数 = CurrentProject.Connection 'インスタンスを生成
▼記述例▼Sub test_Current()
Dim CNT As ADODB.connection
Set CNT = CurrentProject.connection
Select Case CNT.State '接続状態を返すプロパティ
Case adStateOpen
MsgBox "接続中"
Case adStateClosed
MsgBox "接続なし"
End Select
Set CNT = Nothing '参照を解除、メモリ開放
End Sub
カレントプロジェクト以外のデータベースに接続する場合の記述
1_Provider_データベースの種類
2_Data Source_接続先のデータベースのパス
書式1:
Dim オブジェクト変数 As ADODB.Connection
Set オブジェクト変数 = New ADODB.Connection
オブジェクト変数.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=DBのフルパス"
オブジェクト変数.Open
書式2:オブジェクト変数の宣言と同時にインスタンスを生成
Dim オブジェクト変数 As New ADODB.Connection
オブジェクト変数.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=DBのフルパス"
オブジェクト変数.Open
Dim オブジェクト変数 As New ADODB.Connection
オブジェクト変数.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=DBのフルパス" Sub test_NotCurrent()
Dim CNT As ADODB.connection
Set CNT = New ADODB.connection
CNT.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & "C:\Users\user\tama-shi\tamashi.accdb"
CNT.Open
Select Case CNT.State 'stateは接続状態を返すプロパティ
Case adStateOpen
MsgBox "接続中"
Case adStateClosed
MsgBox "接続なし"
CNT.Close 'openした場合にはcloseする
Set CNT = Nothing '参照を解除、メモリ開放
End Select
End Sub