Получить имена таблиц и полей, используемые для создания запроса в 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
1 ответ
Получите оригинальное имя поля:
fld.SourceField
Получить оригинальное имя таблицы
fld.SourceTable
Подсказка: доступные свойства всегда можно найти в API MSDN, в этом случае: https://msdn.microsoft.com/en-us/library/office/dn123487.aspx или с помощью intellisense в редакторе VBA.