データベースにあるテーブルの名前を取得するには、TableDefオブジェクトのNameプロパティを使います。
サンプルでは、カレントデータベースのすべてのテーブル名をイミディエイトウィンドウに出力しています。
Sub Sample1()
Dim mymydb As Database
Set mydb = CurrentDb
Debug.Print "すべてのテーブル名を出力します"
For Each mytbl In mydb.TableDefs
Debug.Print mytbl.Name
Next
End Sub
住所録テーブルと商品管理テーブルが存在するとしたら、イミディエイトウィンドウには次のように出力されます。
すべてのテーブル名を出力します
MSysAccessObjects
MSysACEs
MSysObjects
MSysQueries
MSysRelationships
住所録
商品管理
最初の6個はシステムオブジェクトです。システムオブジェクトは出力しないようにするためには、次のように記述します。
Sub Sample2()
Dim mymydb As Database
Set mydb = CurrentDb
Debug.Print "すべてのテーブル名を出力します"
For Each mytbl In mydb.TableDefs
If Left(mytbl.Name, 4) <> "MSys" Then
Debug.Print mytbl.Name
End If
Next
End Sub
クエリ名を取得する場合は、QueryDefオブジェクトのNameプロパティを使います。
Sub Sample()
Dim mymydb As Database
Set mydb = CurrentDb
Debug.Print "すべてのクエリ名を出力します"
For Each myqer In mydb.QueryDefs
Debug.Print myqer.Name
Next
End Sub