Поиск поля в ODBC машинных источниках данных - MS Access

56
1

Вчера мне пришлось запускать запрос в MS Access 2010. Одно поле, в котором я нуждался, не было в тех таблицах, которые я обычно использую (уже связан через базу данных ODBC), и я не знал, какая таблица была частью (существует несколько сотен таблиц в машинных источниках данных). Помимо ручного импорта всех таблиц и поиска в каждом из них для этого поля есть способ, которым я могу искать поле, не зная таблицы ни 1. без импорта каких-либо таблиц из баз данных ODBC, или если нет 2. Импорт нескольких возможные таблицы и поиск после того, как эти таблицы были связаны с моей активной сессией MS Access 2010?

спросил(а) 2016-07-07T20:22:00+03:00 4 года, 2 месяца назад
1
Решение
69

Вы можете сделать это в функции с использованием схемы ADO.

Попробуйте эту функцию в стандартном модуле:

    Function ListTablesContainingField(SelectFieldName) As String

Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim strTempList As String

Set cn = CurrentProject.Connection

'Get names of all tables that have a column called <SelectFieldName>
Set rs = cn.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, Empty, SelectFieldName))

'List the tables that have been selected
While Not rs.EOF
'Exclude MS system tables
If Left(rs!Table_Name, 4) <> "MSys" Then
strTempList = strTempList & "," & rs!Table_Name
End If
rs.MoveNext
Wend

ListTablesContainingField = Mid(strTempList, 2)

rs.Close
Set cn = Nothing

End Function

ответил(а) 2016-07-07T20:59:00+03:00 4 года, 2 месяца назад
40

Установите Access Dependency Checker, соедините все таблицы и найдите имя столбца (установите флажок для поиска в связанных таблицах)

ответил(а) 2016-07-07T20:49:00+03:00 4 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема