■方法1:RecordSetオブジェクトのOpenメソッドを使用する
引数①ソース(テーブル名、クエリ名、SQLステートメント等を指定)
引数②CN(Connectionオブジェクトを指定)
引数③カーソルタイプ(CusorTypeプロパティの値を指定)
引数④ロックタイプ(LockTYpeプロパティの値を指定)
※引数③と④は省略可能
Dim adoRs As Object 'ADOレコードセットオブジェクト Set adoRs = CreateObject("ADODB.Recordset") adoRS.Open ソース,CN,カーソルタイプ,ロックタイプ
(例)サンプルコード
※カレントDBを操作する場合は以下リンクを参照しコネクションオブジェクトを設定する
Access VBA ADO データベースに接続する(遅延バインディング) - ray88’s diary
Sub adoTest() Dim adoCN As Object Dim adoRS As Object Dim strSQL As String Set adoCN = CreateObject("ADODB.Connection") Set adoRS = CreateObject("ADODB.Recordset") 'Accessファイルパスを「Data Source」に指定 adoCN.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=C:\デスクトップ\Accessアプリ\data.accdb;" strSQL = "SELECT * FROM T_注文履歴;" 'レコードセットを取得 '「3」は「adOpenStatic」の値 adoRS.Open strSQL, adoCN, 3 Do Until adoRS.EOF Debug.Print adoRS.Fields(0), _ adoRS.Fields(1), _ adoRS.Fields(2) adoRS.MoveNext Loop adoRS.Close: adoCN.Close Set adoRS = Nothing: Set adoCN = Nothing End Sub
■方法2:ConnectionオブジェクトのExecuteメソッドを使用する
adoCNにはConnectionオブジェクトを指定
コマンドにはテーブル名、クエリ名、SQLステートメントなどを指定
Dim adoRS As Recordset Set adoRS = adoCN.Execute(コマンド)
(例)サンプルコード
※カレントDBを操作する場合は以下リンクを参照しコネクションオブジェクトを設定する
Access VBA ADO データベースに接続する(遅延バインディング) - ray88’s diary
Sub adoTest() Dim adoCN As Object Dim adoRS As Object Dim strSQL As String Set adoCN = CreateObject("ADODB.Connection") Set adoRS = CreateObject("ADODB.Recordset") 'Accessファイルパスを「Data Source」に指定 adoCN.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=C:\デスクトップ\Accessアプリ\data.accdb;" strSQL = "SELECT * FROM T_注文履歴;" 'レコードセットを取得 Set adoRS = adoCN.Execute(strSQL) Do Until adoRS.EOF Debug.Print adoRS.Fields(0), _ adoRS.Fields(1), _ adoRS.Fields(2) adoRS.MoveNext Loop adoRS.Close: adoCN.Close Set adoRS = Nothing: Set adoCN = Nothing End Sub