在查询vba中传递没有引号的字符串变量

时间:2018-04-30 14:18:59

标签: sql vba ms-access

Dim StoreNoToUpdate As String
Dim Marsha As String

StoreNoToUpdate = "ABCXYZ123"

Marsha = "hi"

db.Execute "Update TblLodgingReport set [MarshaCode]=  'Marsha'  where [Store Number ID]= 'ABCXYZ123'"

我想在“ABCXYZ123”位置更新“hi”。但它没有粘贴“喜”,而是粘贴“玛莎”。

3 个答案:

答案 0 :(得分:5)

您需要远离SQL连接并开始使用参数。

使用参数查询:

PARAMETERS [prmMarshaCode] Text (50), [prmStoreNoToUpdate] Text (50);
UPDATE TblLodgingReport SET [MarshaCode] = [prmMarshaCode]
WHERE [Store Number ID] = [prmStoreNoToUpdate];

在VBA中调用上述查询:

With CurrentDb().QueryDefs("qryName")
    .Parameters("[prmMarshaCode]").Value = Marsha 
    .Parameters("[prmStoreNoToUpdate]").Value = StoreNoToUpdate 
    .Execute dbFailOnError
End With

答案 1 :(得分:0)

尝试:

Dim StoreNoToUpdate As String
Dim Marsha As String

StoreNoToUpdate = "ABCXYZ123"

Marsha = "hi"

Db.Execute "Update TblLodgingReport set [MarshaCode]='" & Marsha & "'where [Store Number ID]= 'ABCXYZ123'"

答案 2 :(得分:0)

尝试更改以下行

db.Execute "Update TblLodgingReport set [MarshaCode]='" & Marsha & "' where [Store Number ID]='" & StoreNoToUpdate & "'"

因为'Marsha'意味着您实际上将Marsha作为字符串发送而不使用该变量。