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

0 sql ms-access vba

Dim StoreNoToUpdate As String
Dim Marsha As String

StoreNoToUpdate = "ABCXYZ123"

Marsha = "hi"

db.Execute "Update TblLodgingReport set [MarshaCode]=  'Marsha'  where [Store Number ID]= 'ABCXYZ123'"
Run Code Online (Sandbox Code Playgroud)

我想在"ABCXYZ123"位置更新"hi".但它没有粘贴"喜",反而是粘贴"玛莎".

Kos*_* K. 5

您需要摆脱SQL连接并开始使用参数.

查询参数:

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

在VBA中调用以上查询:

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