Access VBAでテーブル名を取得するには ADOX.Table を使用します。
TableのTypeは下記になります。
Access TABLE : Microsoft Accessのシステムテーブル
LINK : ODBC以外からのリンクテーブル
PASS-THROUGH : ODBCデータソースからのリンクテーブル
SYSTEM TABLE : Microsoft Jet システムテーブル
TABLE : Accessの標準テーブル
VIEW : Accessのパラメータを持たない選択クエリ
■取得するファイルのテーブルです。
■ 実行Access画面
「ADOXでテーブル一覧を作成 」ボタンで取得を開始します。
リンクテーブルならば→を付けて表示しています。
■ Access VBA 実行コード例
Option Compare Database
Option Explicit
Private Sub コマンド0_Click()
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
Dim s1 As String
Dim sfina As String
'ファイル名
sfina = "c:\adoxtest.mdb"
'JET4.0
s1 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & sfina & "; Jet OLEDB:Engine Type= 5"
'データベースに接続
cat.ActiveConnection = s1
s1 = ""
For Each tbl In cat.Tables
'テーブルならば
If tbl.Type = "TABLE" Then
s1 = s1 & tbl.Name & vbCrLf
End If
'リンクテーブルならば
If tbl.Type = "LINK" Then
s1 = s1 & "→" & tbl.Name & vbCrLf
End If
Next
Me!テキスト1 = s1
Set cat = Nothing
MsgBox "データベースのテーブル一覧を取得しました。"
End Sub