- VB,VBA
- 2011-02-14 - 更新:2020-10-28
Dim db As Object Dim rst As Object Set db = DBEngine.Workspaces(0).Databases(0) MsgBox db.Name Set rst = db.OpenRecordset("テーブルまたはクエリ名") Do Until rst.EOF Debug.Print rst("フィールド名") DoEvents rst.MoveNext Loop rst.Close: Set rst = Nothing db.Close: Set db = Nothing
OpenRecordsetメソッドにdbOpenDynasetなどの引数を指定したい場合
定数が使用できないので、下記を参考に数値を入力してください。
dbOpenTable | 1 |
dbOpenDynamic | 2 |
dbOpenDynaset | 3 |
dbOpenSnapshot | 4 |
SQL Serverへ接続する場合について(※2016.06.14追記)
SQL ServerのID列を持つテーブルを開くときは、dbSeeChanges(512)オプションを使用するようエラーが発生します。
その場合は以下のように開きます。
Set rst = db.OpenRecordset("テーブルまたはクエリ名", 2, 512)
CurrentDbの推奨(※2020.10.28追記)
Access2000以降ではデータベースをする際、上記のコードにある「DBEngine.Workspaces(0).Databases(0)」よりも「CurrentDb」の使用が推奨されているようです。
Set db = CurrentDb
また、別のデータベースを参照する必要があるときは以下のようにしてください。
Set db = DBEngine.Workspaces(0).OpenDatabase("Another.mdb")