我正在尝试链接不同数据库中的两个表。我所做的是创建一个新表,然后尝试将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
这没有给我预期的结果,因为链接永远不会建立。有人可以告诉我,如果这是正确的方法,或者有更好的方法吗?谢谢你的帮助。
答案 0 :(得分:0)
您可以使用Access的内置功能轻松链接到其他Access数据库中的表。
根据您使用的Access版本,应该有一个导入/链接到其他数据源的选项,包括另一个Access数据库:
这将启动导入/链接向导。浏览到要链接到的数据库文件:
指定是否要导入或链接到您浏览的数据库文件中的数据对象(在本例中为链接):
选择要链接到的对象:
链接对象将显示在导航窗格中,蓝色箭头表示它们是链接对象,而不是本地存储到当前数据库的内容:
然后,您应该能够使用链接表,就好像它们是数据库中的任何其他类型的表一样。
答案 1 :(得分:0)
这是解决问题的方法。
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库是什么。无论如何,谢谢你的帮助!