2009-05-20 10 views

答えて

2

以下は、各テーブルの名前をイミディエイトウィンドウに表示します。

Sub ShowAllTables() 

    Dim obj As AccessObject 

    For Each obj In Application.CurrentData.AllTables 
      Debug.Print obj.Name 
    Next obj 

End Sub 
+2

あなたは、システムテーブルを除外すべきである - 彼らはのMSysで始まる - テーブル上の任意のアクションから、システムテーブルを改ざんすることは永久にデータベースを損傷または破壊することができます。 Left(obj.Name、4)<> "Msys" Then 'Do stuff End If – Fionnuala

1

AccessObjectがテーブルが非表示になっているかどうかわかりませんが、ADOは確かに可能です。

Sub ShowAllTables2() 

    Dim cat 
    Set cat = CreateObject("ADOX.Catalog") 

    With cat 
    .ActiveConnection = CurrentProject.Connection 

    Dim t 
    For Each t In .tables 
     Debug.Print t.Name, t.Properties("Jet OLEDB:Table Hidden In Access").Value 
    Next 

    End With 

End Sub 
関連する問題