【发布时间】:2013-12-20 09:56:29
【问题描述】:
我正在尝试使用 Access VBA 中的外部 ODBC 表更新我的本地数据库表之一。
部分更新代码如下所示。
Dim db As Database
Dim qdf As QueryDef
Dim updateQuery As String
updateQuery = "My_Update_Query"
Set db = CurrentDb()
Set qdf = db.CreateQueryDef
qdf.SQL = updateQuery
qdf.Execute dbFailOnError
我的代码在 qdf.Execute 行停止运行。我收到错误消息“对象无效或不再设置”。错误代码 3420。
在我的更新查询中,我已将本地表字段值设置为等于外部 ODBC 表字段值。外部 ODBC 表已作为链接表导入到我的 Access 中。
请问我是否还需要在此处显式连接到外部表?如果是这样,我该怎么做?
非常感谢您的帮助。
【问题讨论】:
-
我总是将记录集用于这种类型的操作,如果这有助于您可以直接指定连接字符串并在记录集上运行事务。
-
您是否有一个名为 My_Update_Query 的已保存查询,并且您是否正在尝试执行该查询?如果是这样,当您在 Access 查询设计器中对其进行测试时,它是否可以正常工作?
-
对我来说,这看起来可能像是缺少对象库引用。
VBA > Tools > References. -
@HansUp 我有一个弹出窗口,要求我输入链接表的参数值。这就是为什么我在执行 sql 时是否真的连接了该链接表感到困惑。
-
@engineersmnky 你指的是recordset.edit 方法吗?看来我必须一个一个地更新我的记录,而不是执行一个简单的更新查询。有没有简单的方法来实现这一目标?我没有选择记录集的另一个原因是我不确定它是否可以返回更新的结果,无论是成功还是失败。
标签: sql vba ms-access odbc database-connection