MyTetra Share
Делитесь знаниями!
Как связать таблицу из одной базы данных MS Access (*.mdb или *.accdb) с другой базой данных Access в VBA?
Время создания: 16.03.2019 23:43
Раздел: !Закладки - VBA - Access - Link
Запись: xintrea/mytetra_db_adgaver_new/master/base/153160458110o4bsgy4n/text.html на raw.githubusercontent.com

Как связать таблицу из одной базы данных MS Access (*.mdb или *.accdb) с другой базой данных Access в VBA?

В основном я просто использовал VBA для репликации того, что делает мастер внешних данных.

Я искал это, и я вижу много примеров того, как обновлять или перематывать таблицы и многие примеры связывания с базами данных SQL, но очень мало простых таблиц связывания между базами данных Access.

2 ответов

Вы можете использовать DoCmd.TransferDatabase Method, чтобы создать ссылку на таблицу в другой базе данных 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"


6

ответ дан HansUp 28 апр. '16 в 0:14 источник поделиться

На самом деле это довольно просто: вы просто создаете новый tabledef и устанавливаете его свойство .connect в строку подключения 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



Конечная функция

Строка подключения будет выглядеть примерно так (взято из connectionstrings.com):

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;


2

ответ дан DataWriter 27 апр. '16 в 23:42 источник поделиться

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования