HOME > 即効テクニック > AccessVBA > データベース・データ保護 > テーブルを参照する/参照を閉じる

即効テクニック

データベース・データ保護

テーブルを参照する/参照を閉じる

(Access 2000/2002/2003)
●概要●
構文  expression.Open Source, ActiveConnection, CursorType, LockType,
                 Options

設定項目           内容
expression         Recordsetオブジェクトを指定[省略不可]
Source             テーブル名、SQLステートメントを指定[省略可能]
ActiveConnection   有効なConnectionオブジェクトを指定[省略可能]
CursorType         カーソルタイプを定数で指定[省略可能]
LockType           同時実行制御の種類を定数で指定[省略可能]
Options            引数を評価する方法を定数で指定[省略可能]

Openメソッドは指定したテーブルの内容またはクエリの内容をレコードセットに格納します。Closeメソッドはレコードセットを閉じます。引数には次の表の定数を指定します。カーソルタイプの詳細については、Cursorプロパティの項で紹介しています。

・引数に指定する定数

定数                    説明
adOpenForwardOnly       前方スクロールタイプ(既定値)
adOpenKeyset            キーセットカーソル
adOpenDynamic           動的カーソル
adOpenStatic            静的カーソル

引数には次の定数を指定します。ロックタイプの詳細については、Lockプロパティの項で紹介しています。

・引数に指定する定数

定数                    説明
adLockReadOnly          読み取り専用(既定値)
adLockPessimistic       レコードごとの排他的ロック
adLockOptimistic        レコードごとの共有的ロック
adLockBatchOptimistic   共有的バッチ更新

引数には次の定数を指定します。

・引数に指定する定数

定数                        説明
adCmdText                   引数をコマンド文字列として評価
adCmdTable                  引数に指定したテーブルからすべてのレコー
                            ドを取得(ADOがSQLを自動生成する)
adCmdTableDirect            引数に指定したテーブルからすべてのレコー
                            ドを取得(プロバイダがレコードを取得)
adCmdStoredProc             プロバイダが引数をストアドプロシージャと
                            して評価
adCmdUnknown                引数の種類が不明であることを指定
adCmdFile                   引数に指定したファイルから保存された
                            Recordsetを取得
adCmdAsyncExecute           引数を非同期で実行
adCmdAsyncFetch             ローカルメモリにキャッシュした残りのレコードを非
                            同期でフェッチ。フェッチされたことがないレコード
                            が要求された場合は、要求されたレコードが利用可能
                            になるまでメインスレッドがブロックされる
adCmdAsyncFetchNonBlocking  フェッチ中にブロックされたことがないメインスレッ
                            ドを指定

次のコードは、「D:\AccessVBA」フォルダの「Sample1.mdb」データベースの「商品tbl」テーブルをRecordsetに読み込んでいます。このサンプルを実行する場合は、フォルダ名とデータベース名をお使いの環境に合わせてください。

●サンプル●
Sub TableOpenSample()
    Dim myCN As New ADODB.Connection
    Dim myRS As New ADODB.Recordset
    myCN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=D:\AccessVBA\Sample1.mdb"
    myCN.Open
    'レコードセットを開く
    myRS.Open "商品tbl", myCN
    '最初のレコードを表示
    MsgBox myRS!商品名
    'ここにテーブル操作の処理を記述する
    'レコードセットを閉じる
    myRS.Close
    myCN.Close
End Sub