Vba 使用Access表单中的数据更新SQL表
我正在尝试创建一个Access 2016表单,允许用户更正位于SQL Server表上但遇到问题的信息。首先是一些限制;我无法在SQL Server中创建任何新内容,用户无权访问ODBC连接的密码 我知道使用Access传递查询可以保存ODBC连接,但是必须使用VBA使用Access表单中的数据更新查询 目前我在VBA中的代码是Vba 使用Access表单中的数据更新SQL表,vba,sql-server-2012,ms-access-2016,Vba,Sql Server 2012,Ms Access 2016,我正在尝试创建一个Access 2016表单,允许用户更正位于SQL Server表上但遇到问题的信息。首先是一些限制;我无法在SQL Server中创建任何新内容,用户无权访问ODBC连接的密码 我知道使用Access传递查询可以保存ODBC连接,但是必须使用VBA使用Access表单中的数据更新查询 目前我在VBA中的代码是 mysql = "Update dbo.MRollData Set dbo.MRollData.PolyPart = '" + Me.ActiveControl.
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命令激活的,但是运行此I get运行时错误“438”对象不支持此属性或方法。
VBA代码是使用来自另一个数据库的类似代码位编写的,该数据库更新执行SQL查询的查询
我还尝试自己运行查询,并不断得到错误“查询必须至少有一个目标字段”
我是否遗漏了什么,或者无法在访问传递查询中运行SQL更新查询?还有没有更简单的方法来做我正在尝试的事情
更新;我在这里列出了一个标记,我没有看到自动生成为ActiveControl,这应该是我的.ActualValue.Value您可以尝试:
CurrentDb.QueryDefs("PolyPartChange").SQL = mysql
CurrentDb.QueryDefs("PolyPartChange").Execute
查询必须是传递查询,您的SQL语法才能工作。我尝试了您建议的更改,但出现运行时错误“438”对象不支持此属性或方法。单击debug it指向MySQL=“…”端口。最后,我发现我的错误是在键入VBA代码时,我不小心将ActiveControl而不是标记ActualValue放入其中。谢谢你。