使用 Access 2016 表单中的数据更新 SQL Table

Updating a SQL Table using data from an Access 2016 Form

我正在尝试创建一个 Access 2016 表单,允许用户更正位于 SQL 服务器 Table 上的信息,但遇到了问题。首先是一些限制;我无法在 SQL 服务器中创建任何新内容,用户无权访问 ODBC 连接的密码。

我知道使用访问传递查询可以保存 ODBC 连接,但是您必须使用 VBA 使用访问表单中的数据更新查询。

目前我在 VBA 中的代码是;

   mysql = "Update dbo.MRollData Set dbo.MRollData.PolyPart = '" + Me.ActiveControl.Value + "' WHERE dbo.MRollData.LotNum = '" + Me.MRollLotNum.Value + "' AND dbo.MRollData.Side = '" + Me.MRollSide.Value + "' AND dbo.MRollData.MRIndex = '" + Me.MRollIndex.Value + "' AND dbo.MRollData.PolyPart = '" + Me.CurrentValue.Value + "'"

   CurrentDb().QueryDefs("PolyPartChange").SQL = mysql

   DoCmd.OpenQuery "PolyPartChange", , acEdit

这是通过 OnClick 命令激活的,但是 运行我收到 运行 时错误“438”对象不支持此 属性 或方法。 VBA 代码是使用来自另一个数据库的类似代码编写的,该数据库更新了执行 SQL 查询的查询。

我也尝试过 运行 查询本身并不断收到错误 "Query must have at least one destination field"

我是不是遗漏了什么,或者是否无法 运行 在 Access 直通查询中执行 SQL 更新查询?还有没有更简单的方法来做我正在尝试的事情?

更新;我在这里列出了一个标签,我没有看到自动生成为 ActiveControl,这应该是 Me.ActualValue.Value

你可以试试:

CurrentDb.QueryDefs("PolyPartChange").SQL = mysql
CurrentDb.QueryDefs("PolyPartChange").Execute

查询必须是传递查询,您的 SQL 语法才能工作。