■方法①:RecordsetオブジェクトのOpenメソッドで開く
【書式】
RS.Open ソース,CN,カーソルタイプ,ロックタイプ
※変数宣言の際に以下の様に記述するとインスタンス生成を同時に行える
Dim RS As New ADODB.Recordset
引数 | 説明 |
---|---|
ソース | テーブル名、クエリ名、SQLステートメントなどを指定 |
CN | Connection,オブジェクトを指定 |
カーソルタイプ | カーソルタイプを指定。CursorTypeプロパティの定数を指定する |
ロックタイプ | ロックタイプを指定。LockTypeプロパティの定数を指定する |
(例)
Sub Test1() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Set CN = CurrentProject.Connection Set RS = New ADODB.Recordset RS.Open "T社員名簿", CN, adOpenStatic RS.MoveLast Do Until RS.BOF Debug.Print RS.Fields(0), _ RS.Fields(1), _ RS.Fields(2) RS.MovePrevious Loop RS.Close: CN.Close Set RS = Nothing: Set CN = Nothing End Sub
■方法②:ConnectionオブジェクトのExcuteメソッドを使用する
Dim RS As ADODB.Recordset Set RS = CN.Execute(コマンド)
オブジェクト | 説明 |
---|---|
CN | Connectionオブジェクトを指定 |
引数 | 説明 |
---|---|
コマンド | テーブル名、クエリ名、SQLステートメントなど指定 |
※ConnectionオブジェクトのExecuteメソッドの結果をRecordsetオブジェクトで取得した場合、レコードセットは常に前方スクロールカーソルの読み取り専用となる。
※Executeメソッドでアクションクエリを実行した際にレコードセットが返らない場合、指定したアクションが実行される。
その場合、レコードセットのオブジェクト変数は使用せず以下の様に記述する。
CN.Execute コマンド
(例)
Sub Test2() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Set CN = CurrentProject.Connection Set RS = CN.Execute("T社員名簿") Do Until RS.EOF Debug.Print RS.Fields(0), _ RS.Fields(1), _ RS.Fields(2) RS.MoveNext Loop RS.Close: CN.Close Set RS = Nothing: Set CN = Nothing End Sub