Microsoft Access でデータベース テーブルのリストを生成するにはどうすればよいですか?
誰かが提案したSQLクエリを見つけました別のウェブサイトただし、Access には、以下のようなユーザーが作成したクエリを簡単に実行できるインターフェイスがないようです...
SELECT [Name]
FROM MSysObjects
WHERE Type In (1,4,6)
AND Left([Name] , 4) <> "MSys"
ORDER BY [Name]
答え1
クエリ内にある SQL を実行できます。それがクエリの内容だからです。
- ウィザードではなく、クエリ デザインで新しいクエリを作成します。
- テーブルウィンドウを閉じます。
- ビューを変更して
SQL
文字列を入力します。 - クリック
RUN
。
答え2
DAO
次のように実行できますVB
:
Public Sub ListTablesDAO()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb
For Each tdf In db.TableDefs
If (tdf.Attributes And dbSystemObject) = 0 Then
Debug.Print tdf.Name
End If
Next tdf
db.Close: Set db = Nothing
End Sub
そしてこのようにADO
Public Sub ListTablesADO()
Dim rs As ADODB.Recordset
Set rs = CurrentProject.Connection.OpenSchema(adSchemaTables)
Do Until rs.EOF
If rs!TABLE_TYPE = "TABLE" Then
Debug.Print rs!TABLE_NAME
End If
rs.MoveNext
Loop
rs.Close: Set rs = Nothing
End Sub
DAO と ADO は、データベース用に 2 つの異なるオブジェクト モデルを提供します。どちらのバージョンを選択するかは、好みによって異なります。また、それぞれのライブラリへの参照も必要です。
メニューに次の参照を追加できますTools > References
: