I get a popup box asking for the parameter value for the value of CXIid
Enter Parameter Value
for CXI00012.
I tried ' " & CXIid & " '
but then I get a result of 0 rows being updated. However when I put a value in the where clause or into the Enter Parameter Value prompt I get the correct row updated.
How do I get it to recognize CXIid as a value?
Private Sub cmdSave_Click() Dim CXIid As String Dim testSQL As String CXIid = Form_sf_ParticipantView.CXI_ID testSQL = "UPDATE [tbl_Participants]" & _ "SET tbl_Participants.Consent = (Forms.frmReturn.cboConsent.value)" & _ "WHERE ((tbl_Participants.CXI_ID = " & CXIid & " ));" DoCmd.RunSQL testSQL
Advertisement
Answer
You have a few different types of mistakes… the variables cannot be within the quotes, and since the field CXI_ID
is a String
, it does need quotes.
This assumes that the Consent
field is numeric and the combobox is returning a numeric value as well.
testSQL = "UPDATE [tbl_Participants]" & _ " SET tbl_Participants.Consent = " & Forms.frmReturn.cboConsent.value & _ " WHERE tbl_Participants.CXI_ID = '" & CXIid & "'"
Also note the spaces I added before SET and WHERE. Those are important.
Use MsgBox testSQL
or Debug.Print testSQL
to double check what testSQL
is set to before you run it.
If the field CXI_ID
is not a string but you are just using a string as the type of variable holding the value for some reason:
testSQL = "UPDATE [tbl_Participants]" & _ " SET tbl_Participants.Consent = " & Forms.frmReturn.cboConsent.value & _ " WHERE tbl_Participants.CXI_ID = " & CXIid
If they are both strings:
testSQL = "UPDATE [tbl_Participants]" & _ " SET tbl_Participants.Consent = '" & Forms.frmReturn.cboConsent.value & "'" & _ " WHERE tbl_Participants.CXI_ID = '" & CXIid & "'"