如何为外部数据库中的表执行MS Access Update查询

时间:2014-09-02 22:08:22

标签: sql ms-access ms-query

我试图在一个单独的数据库上执行更新查询,到目前为止我有这个SQL:

UPDATE [;database=C:\QA_Daily_YTD_Report_Export.accdb].[YTD-Daily_Report] AS EXT_DB
SET EXT_DB.Category1 = "1"
WHERE (EXT_DB.Category1 = "status1");

当我运行它时,它返回一个"无效的操作"错误。知道我做错了什么吗?

3 个答案:

答案 0 :(得分:1)

我建议将表[YTD-Daily_Report]链接到数据库中,因为您可以轻松地将更新查询放入代码中,而无需代码执行与其他数据库的连接。

您可以通过单击外部数据链接Access中的表。然后单击Access符号。 enter image description here

然后你应该得到一个这样的对话框: enter image description here

请确保选择第二个单选按钮,因为您不想从数据库导入数据,只需链接它即可。

导航到数据库的位置并单击它。然后确保您的数据库显示在上面的对话框中,然后单击“确定”。 enter image description here

然后你应该得到一个像这样的对话框来显示你不会的表格。突出显示它,然后单击“确定”。现在,您可以使用您想要的任何名称重命名链接表,这对您的工作来说将是一个绊脚石。

答案 1 :(得分:0)

尝试省略;database=

 UPDATE [C:\QA_Daily_YTD_Report_Export.accdb].[YTD-Daily_Report] AS EXT_DB SET EXT_DB.Category1 = "1" WHERE (EXT_DB.Category1 = "status1");

答案 2 :(得分:0)

我最终在一个表单中使用VBA,以防有人想知道它是怎么回事:

Dim SQL As String
Dim db_external As Database
Set db_external = OpenDatabase(CurrentProject.Path & "\QA_Daily_YTD_Report_Export.accdb")
SQL = "UPDATE [YTD-Daily_Report]" & Chr(13) & _
"SET [YTD-Daily_Report].Category1 = '" & New_value & "'" & Chr(13) & _
"WHERE ([YTD-Daily_Report].Category1= '" & Look_up_value & "');"
db_external.Execute SQL