为什么不能直接使用CurrentDB()方法将表与vba重新链接?
|
谁能解释为什么第一个代码示例有效,而第二个代码示例无效?
此重新链接代码可以正常工作:
Dim db As Database
Dim sNewLinkAddress As String
sNewLinkAddress = \"C:\\temp\\backend.accdb\"
Set db = CurrentDb
db.TableDefs(\"table1\").Connect = \";Database=\" & sNewLinkAddress
db.TableDefs(\"table1\").RefreshLink
此重新链接代码不起作用,但未给出错误消息:
Dim sNewLinkAddress As String
sNewLinkAddress = \"C:\\temp\\backend.accdb\"
CurrentDb().TableDefs(\"table1\").Connect = \";Database=\" & sNewLinkAddress
CurrentDb().TableDefs(\"table1\").RefreshLink
我担心的是,在使用由CurrentDB()直接返回的数据库对象和使用由CurrentDB()返回的数据库对象设置的变量\'db \'之间,我不知道有根本的区别。在我看来,两种方式应该完全相同,但显然我错了!
过去,我直接将CurrentDB()用于各种事情,例如毫无问题地打开记录集。重新链接表似乎存在特定问题。对这里发生的事情有什么想法吗?
我正在使用Access 2007,但是同一问题也适用于2003。
没有找到相关结果
已邀请:
1 个回复
咳累录酬
分配给数据库对象
。然后,每次调用“ 4”时,您都在指同一个数据库对象实例:
在第二个示例中,您对
函数进行了多次调用,每个调用都返回一个不同的数据库对象实例:
结果是,当您在第二行上调用
时,您正在对数据库对象的全新实例进行操作。即,其\“ table1 \\”连接属性尚未更改。