Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用Access表单中的数据更新SQL表_Vba_Sql Server 2012_Ms Access 2016 - Fatal编程技术网

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

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.

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

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

目前我在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命令激活的,但是运行此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放入其中。谢谢你。