Получить имена таблиц и полей, используемые для создания запроса в Access VBA

Я пытаюсь получить список таблиц и полей, которые используются для создания запросов в базе данных доступа. Я могу идентифицировать поля, найденные в выводе запроса, но не поля, используемые для разработки запроса.

Другими словами, можно ли получить имена таблиц и полей, указанные в разделе построителя запросов представления конструктора запроса в Access?

Я нашел и разработал некоторый код VBA, который получает все поля, которые находятся в выводе запроса (ниже), но это не дает мне нужной информации. Возможно ли достичь того, что я ищу?

Function listQueryFields() As String

    Dim db As DAO.Database
    Dim qry As DAO.QueryDef
    Dim fld As Field
    Dim rs As Recordset

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tbl_Query_Field_Names")

    For Each qry In db.QueryDefs
        If InStr(1, qry.Name, "_qry_", vbTextCompare) > 0 Then
            Debug.Print qry.Name
                For Each fld In qry.Fields
                   Debug.Print fld.Name
                   rs.AddNew
                        rs(0) = qry.Name
                        rs(1) = fld.Name
                    rs.Update
                 Next

        End If
    Next

    Set db = Nothing
    Set rs = Nothing
    Exit Function

End Function

person mccdo    schedule 23.09.2015    source источник


Ответы (1)


Получите исходное имя поля:

fld.SourceField

Получить исходное имя таблицы

fld.SourceTable

Подсказка: доступные свойства всегда можно найти в API MSDN, в данном случае: https://msdn.microsoft.com/en-us/library/office/dn123487.aspx или с помощью intellisense в редакторе VBA.

person asdev    schedule 23.09.2015
comment
С этим разобрались, спасибо asdev. И эта ссылка MSDN тоже окажется очень полезной. - person mccdo; 23.09.2015