动态链接
问题描述:
我试图让表链接到后端在启动Access 2010中,动态链接
下面是代码:
dbs.TableDefs(intLoop - 1).Connect = ";DATABASE=" & strBack & strBackEnd
Debug.Print (dbs.TableDefs(intLoop - 1).Connect)
dbs.TableDefs(intLoop - 1).RefreshLink
现在的连接是一个文件上C:或D:驱动器取决于PC设置。但不是连接到文件,而是打开系统DNS选择器窗口。
任何线索为什么?路径有效,数据库有效。
答
在评论你解释:
数据库具有本地表,连接到MDB文件的混合和链接 到SQLServer的。
可以处理该组合通过检查每个TableDef
的.Connect
财产,只有改变那些链接到另一个Access数据库。
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Set dbs = CurrentDb
For Each tdf In dbs.TableDefs
With tdf
If .Connect Like ";DATABASE=*" Then
.Connect = ";DATABASE=" & strBack & strBackEnd
.RefreshLink
End If
End With
Next
该建议假设链接已经存在,而您只是试图改变它们的连接属性。如果您需要从头开始创建链接,请使用包含每个链接表信息的本地表格,然后使用该信息驱动链接创建。
+0
谢谢,一旦我释放我的错误,我有这种排序,但我会将其标记为可能在同一条路上漫步的其他人的答案, – Rob
'strBack&strBackEnd'输出是什么?它们分别是具有正斜杠Windows分隔符和扩展名的目录和基本名称吗? – Parfait
是的,该字符串是有效的mdb文件的有效路径。它是RefreshLink打开dsn窗口 – Rob
DSN设置启动的唯一原因是使用了ODBC链接表(非Access源)。 – Parfait