Таблица MS Access Link с VBA
Как я могу связать таблицу из одной базы данных MS Access (*.mdb или *.accdb) к другой базе данных Access в VBA?
в основном я просто должен был использовать VBA для репликации того, что делает мастер внешних данных.
я погуглил это, и я вижу много примеров того, как обновлять или повторно связывать таблицы и многие примеры ссылок на базы данных SQL, но очень мало простых таблиц связи между базами данных Access.
2 ответов
можно использовать DoCmd.Метод TransferDatabase создать ссылку на таблицу в другой базе данных Access.
DoCmd.TransferDatabase TransferType:=acLink, _
DatabaseType:="Microsoft Access", _
DatabaseName:="C:\share\Access\Example Database.accdb", _
ObjectType:=acTable, _
Source:="Addresses", _
Destination:="Addresses_link"
Я включил имена опций, надеясь, что это облегчит отслеживание того, какой вариант какой. Но если это кажется слишком подробным, вы можете опустить имена опций и сделать все это в одной строке:
DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\share\Access\Example Database.accdb", acTable , "Addresses", "Addresses_link"
это на самом деле довольно просто-вы просто создаете новый tabledef и устанавливаете его .подключите свойство к строке подключения ODBC, которая связывается с другой базой данных Access.
Private Function LinkTable(LinkedTableName As String, TableToLink As String, connectString As String) As Boolean
Dim tdf As New dao.TableDef
On Error GoTo LinkTable_Error
With CurrentDb
.TableDefs.Refresh
Set tdf = .CreateTableDef(LinkedTableName)
tdf.Connect = connectString
tdf.SourceTableName = TableToLink
.TableDefs.Append tdf
.TableDefs.Refresh
End With
Set tdf = Nothing
End Function
строка соединения будет выглядеть примерно так (взято из connectionstrings.com):
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;