HOME > 即効テクニック > AccessVBA > クエリ・SQL > クエリの構造を取得する

即効テクニック

クエリ・SQL

クエリの構造を取得する

(Access 2000/2002)
クエリの構造を取得するには、QueryDefオブジェクトのプロパティと、Fieldオブジェクトのプロパティを使います。
サンプルプロシージャでは、「クエリ1」の種類(Typeプロパティ)と作成日付(DateCreatedプロパティ)とフィールドの数(FieldオブジェクトのCountプロパティ)を取得して、メッセージボックスに表示しています。
Sub Sample()
    Dim myQDef As QueryDef
    Dim myfld  As Field
    Dim QType  As String
    Dim msg    As String
    
    Set myQDef = CurrentDb.QueryDefs("クエリ1")
    
    msg = myQDef.Name & Chr(13)
    
    Select Case myQDef.Type
        Case dbQAction
            QType = "アクションクエリ"
        Case dbQAppend
            QType = "追加クエリ"
        Case dbQCompound
            QType = "複合クエリ"
        Case dbQCrosstab
            QType = "クロス集計クエリ"
        Case dbQDDL
            QType = "データ定義クエリ"
        Case dbQDelete
            QType = "削除クエリ"
        Case dbQMakeTable
            QType = "テーブル作成クエリ"
        Case dbQProcedure
            QType = "遂行クエリ"
        Case dbQSelect
            QType = "選択クエリ"
        Case dbQSetOperation
            QType = "ユニオンクエリ"
        Case dbQSPTBulk
            QType = "レコードを返さないクエリ"
        Case dbQSQLPassThrough
            QType = "パススルークエリ"
        Case dbQUpdate
            QType = "更新クエリ"
        Case Else
            QType = "タイプがわかりません"
    End Select
        
    msg = msg & "クエリタイプ:" & QType & Chr(13)
    msg = msg & "作成日:" & myQDef.DateCreated & Chr(13)
    msg = msg & "フィールド数:" & myQDef.Fields.Count
    
    MsgBox msg
    
End Sub
この他にも、最終更新日・SQL文字列・各フィールドのソーステーブル名・フィールド名などの取得も可能です。
DAOを使用するには、[ツール(T)]メニューの[参照設定(R)]をクリックすると表示される[参照設定]ダイアログボックスで、「Microsoft DAO 3.6Object Library」をチェックします。