1

Я только начал работать ИТ-специалистом в компании, имеющей множество баз данных Access с локальными таблицами. База данных может иметь 20 локальных таблиц, и 10 таблиц связаны в разные базы данных в виде связанных таблиц.

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

РЕДАКТИРОВАТЬ ->
Возможно, это неосуществимое решение, поэтому позвольте мне сформулировать вопрос таким образом. Если я открою каждую отдельную базу данных, есть ли скрипт, который я могу выполнить, который предоставит мне список всех связанных таблиц и исходную базу данных, с которой эта таблица связана?

1 ответ1

1

Попробуй это:

Public Sub LoopThroughTables()
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Set db = CurrentDb
    For Each tdf In db.TableDefs
        ' ignore system and temporary tables
        If Not (tdf.Name Like "MSys*" Or tdf.Name Like "~*") Then
            Debug.Print tdf.Name, tdf.Connect
        End If
    Next
    Set tdf = Nothing
    Set db = Nothing
End Sub

Источник: Как перебрать все таблицы в БД MS Access (добавлено в tdf.Connect)

Приведенный выше код перечислит имя каждой таблицы вместе со строкой соединения этой таблицы. Для локальных таблиц строка подключения будет пустой.

Вот пример выходных данных из БД Access, которая имеет одну локальную таблицу с именем "LocalTable" и одну связанную таблицу (связанную с файлом Excel) с именем "LinkedTable":

LinkedTable   Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=C:\Temp\temp.xlsx
LocalTable

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .