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")
参考URL:CurrentDb メソッド (Access) | Microsoft Docs