Ms access 通过vba链接两个Microsoft Access表

Ms access 通过vba链接两个Microsoft Access表,ms-access,vba,Ms Access,Vba,我正在尝试链接不同数据库中的两个表。我所做的是创建一个新表,然后尝试将DESCRIPTION属性更改为另一个数据库中特定表的路径 Set dbs = CurrentDb thepath = "DATABASE=P:\Cadworx P&ID Implementation\3 Piping\P&IDs Jesus Test\Testproject\myTest.mdb;TABLE=Service" Set tdf = dbs.TableDefs("ThisTable") On

我正在尝试链接不同数据库中的两个表。我所做的是创建一个新表,然后尝试将DESCRIPTION属性更改为另一个数据库中特定表的路径

Set dbs = CurrentDb
thepath = "DATABASE=P:\Cadworx P&ID Implementation\3 Piping\P&IDs Jesus Test\Testproject\myTest.mdb;TABLE=Service"

Set tdf = dbs.TableDefs("ThisTable")

On Error Resume Next

tdf.Properties("Description") = "DATABASE=P:\Cadworx P&ID Implementation\3 Piping\P&IDs Jesus Test\Testproject\myTest.mdb;TABLE=Service"

If Err.Number = 3270 Then
Set prp = tdf.CreateProperty("Description", _
    dbText, thepath)
tdf.Properties.Append prp
End If

这并没有给我想要的结果,因为链接从未建立。谁能告诉我这是正确的方法还是有更好的方法?感谢您的帮助。

使用Access内置功能,您可以相当轻松地从其他Access数据库链接到表

根据您使用的Access版本,应该有一个选项可以导入/链接到其他数据源,包括另一个Access数据库:

这将启动导入/链接向导。浏览到要链接到的数据库文件:

指定是否要导入或链接到浏览到的数据库文件中的数据对象(在本例中为链接):

选择要链接到的对象:

链接对象将显示在导航窗格中,并带有蓝色箭头,表示它们是链接对象,而不是本地存储到当前数据库中的对象:


然后,您应该能够像使用数据库中的任何其他类型的表一样使用链接表。

以下是问题的解决方案

Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim strDbFile As String
Dim strConnect As String
Dim strSourceTableName As String
Dim strLinkName As String
Dim f As Object
Dim varfile As Variant

Set f = Application.FileDialog(3)   'Windows Explorer, 3 means file picker.  4 Is for folder, 1 to open dialog box, 2 to save as
f.show                              'Show Windows explorer

With f
f.allowmultiselect = False
For Each varfile In .selecteditems
    strDbFile = varfile                     'File selected assigned to   source database file
Next
End With

strSourceTableName = "Service"                                                                      'Source Table
strLinkName = "Service"                                                                          'Final table name once link has been established

strConnect = "MS Access;PWD=" & strPassword & ";DATABASE=" & strDbFile

Set dbs = CurrentDb
Set tdf = dbs.CreateTableDef

tdf.Connect = strConnect                                                                           'Establish link between databases
tdf.SourceTableName = strSourceTableName
tdf.Name = strLinkName
dbs.TableDefs.Append tdf

正如古斯塔夫所说,解决办法是按照他发布的内容。我是新手,所以我不知道DAO库是什么。无论如何,谢谢你的帮助

描述没有什么,真的与你的问题描述无关!思科,我明白。有什么方法可以做到我想做的吗?如果你只搜索那么一点点,你可能会发现,所以我投票决定关闭。Matt,谢谢你的回答,但我想在userform中这样做,用户可以选择源数据库文件,然后为他做一切。我可以通过VBA来完成。