2013-11-26 49 views
2

我正尝试使用VBA for Access中的变量更新表。声明如下。使用VBA中的变量时遇到问题SQL WHERE子句

DB.Execute "UPDATE tblSearchersList SET '" & vSearcherDay & "' = " & VHours & " 
WHERE Member= '" & Me.cboMember.Column(1) & "'AND [Mission] = '" & Me.Mission & "'" 

tblSearcherList是表更新

vSearcherDay是依赖于其他查询

一个变量,它与一些结合了字母 “d”,等(1,2,3,4,5)

VHours是一个十进制数(小时数)

构件从表格字段Me.cboMember.Column文本值(1)

团是从表单字段Me.Miss文本值离子

我得到运行时error 3061 - Too few parameters expected 2.

希望我能得到一些帮助,这是我一直争取这一段时间,我失去了战斗。

感谢

新的代码是这样的:

对不起回合的意见事情。我是新人,并不知道如何做到这一点。

DB.Execute "UPDATE tblSearchersList SET " & vSearcherDay &_ 
" = " & VHours & " WHERE Member= '" & Me.cboMember.Column(1) & "' &_ 
" And [Mission] = '" & Me.Mission & "'" 

我对此很尴尬,但我的成员字段名称错误。本来应该是 MemberName。我真的很感激我得到的所有快速帮助,下次会做得更好。它完美的作品。谢谢你们。

+0

你有没有价值之间插入VHours和WHERE子句的空间?格式化似乎表明您正在文本中直接运行,这可能是问题所在。 –

+1

当您构建'UPDATE'语句时,将其存储在字符串变量(如* strUpdate *)中。然后在'DB.Execute strUpdate'之前调试'打印strUpdate'。您可以在即时窗口中检查“Debug.Print”的输出。复制语句文本并将其粘贴到新的Access查询的SQL视图中进行测试。如果您需要更多帮助,请将该语句添加到您的问题中,并告诉我们它触发的错误消息。 – HansUp

回答

1

请勿在字段名称周围使用撇号。相反

SET '" & vSearcherDay & "' = " & 

SET " & vSearcherDay & " = " & 
+0

现在我得到运行时错误3061 - 太少参数预计1而不是2.看起来我越来越近。这里是现在的代码: DB.Execute“UPDATE tblSearchersList SET”&vSearcherDay&“=”&VHours&“WHERE Member ='”&Me.cboMember.Column(1)&“'AND [Mission] ='” &Me.Mission&“'” – user3038522

+0

你能否用新代码更新你的问题,而不是将它置于评论中?同样在''AND [Mission]'尝试在AND和'[Mission]'之前添加空格 –