如何在SQL字符串中使用VBA变量?输入参数值错误
我得到一个弹出框,询问CXIid值的参数值 输入参数值如何在SQL字符串中使用VBA变量?输入参数值错误,sql,vba,ms-access,Sql,Vba,Ms Access,我得到一个弹出框,询问CXIid值的参数值 输入参数值 对于CXI00012 我尝试了”&CXIid&“,但结果是更新了0行。但是,当我在where子句或Enter参数值提示中输入一个值时,就会更新正确的行 如何让它将CXIid识别为一个值 Private Sub cmdSave_Click() 将CXIid设置为字符串 Dim testSQL作为字符串 CXIid=表单\u sf\u ParticipantView.CXI\u ID testSQL=“更新[tbl\U参与者]”和_ “设置tb
对于CXI00012 我尝试了
”&CXIid&“
,但结果是更新了0行。但是,当我在where子句或Enter参数值提示中输入一个值时,就会更新正确的行
如何让它将CXIid识别为一个值
Private Sub cmdSave_Click()
将CXIid设置为字符串
Dim testSQL作为字符串
CXIid=表单\u sf\u ParticipantView.CXI\u ID
testSQL=“更新[tbl\U参与者]”和_
“设置tbl_参与者同意=(Forms.frmReturn.cboConsent.value)”和_
“其中((tbl_Participants.CXI_ID=“&CXIid&”)
DoCmd.runsqltestsql
您有几种不同类型的错误。。。变量不能在引号内,因为字段CXI\u ID
是字符串
,所以不需要引号
这假设同意
字段是数值,并且组合框也返回数值
testSQL = "UPDATE [tbl_Participants]" & _
" SET tbl_Participants.Consent = " & Forms.frmReturn.cboConsent.value & _
" WHERE tbl_Participants.CXI_ID = '" & CXIid & "'"
还要注意我在SET之前添加的空格和WHERE。这些都很重要
使用MsgBox testSQL
或Debug.Print testSQL
在运行之前仔细检查testSQL
的设置
如果字段CXI\u ID
不是字符串,但出于某种原因,您只是使用字符串作为保存值的变量类型:
testSQL = "UPDATE [tbl_Participants]" & _
" SET tbl_Participants.Consent = " & Forms.frmReturn.cboConsent.value & _
" WHERE tbl_Participants.CXI_ID = " & CXIid
如果它们都是字符串:
testSQL = "UPDATE [tbl_Participants]" & _
" SET tbl_Participants.Consent = '" & Forms.frmReturn.cboConsent.value & "'" & _
" WHERE tbl_Participants.CXI_ID = '" & CXIid & "'"
是一个数字或字符串。如果它是字符串,则应使用
”
,但“
和”
:“&CXIid&“