TableDefs、QueryDefsを使ったオブジェクト一覧の取得

目次

TableDefsを使ったテーブル一覧の取得

現在のデータベース中のテーブルの一覧をイミディエイトウィンドウに出力します。

    Dim t As DAO.TableDef
    For Each t In CurrentDb.TableDefs
        Debug.Print t.name
    Next

なお、この方法ではシステムテーブルも含まれます。

システムテーブルを除外するには、下記のようにTableDefのAttributesプロパティで判断します。

If (t.Attributes And dbSystemObject) = 0 Then

QueryDefsを使ったクエリー一覧の取得

現在のデータベース中のクエリーの一覧をイミディエイトウィンドウに出力します。

    Dim q As DAO.QueryDef
    For Each q In CurrentDb.QueryDefs
        Debug.Print q.name
    Next

CurrentData.AllQueriesを使った場合との違い

クエリービルダーを使って、フォームやクエリーのレコードソースを設定した場合、その内部に作成したクエリー(~で始まる名前が自動的に付与される)が保存されます。

この自動作成されたクエリーは、QueryDefsには含まれますが、AllQueriesには含まれません。

    Dim q As AccessObject
    For Each q In CurrentData.AllQueries
        Debug.Print q.name
    Next
よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

目次
閉じる