передать строковую переменную без кавычек в запросе VBA - PullRequest
0 голосов
/ 30 апреля 2018
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". но это не вставка "привет", а вставка "Марша".

Ответы [ 3 ]

0 голосов
/ 30 апреля 2018

Попробуйте изменить следующую строку

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

Это потому, что 'Marsha' означает, что вы буквально отправляете Marsha как строку и не используете переменную.

0 голосов
/ 30 апреля 2018

Вам нужно выйти из конкатенации 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
0 голосов
/ 30 апреля 2018

Попробуйте:

Dim StoreNoToUpdate As String
Dim Marsha As String

StoreNoToUpdate = "ABCXYZ123"

Marsha = "hi"

Db.Execute "Update TblLodgingReport set [MarshaCode]='" & Marsha & "'where [Store Number ID]= 'ABCXYZ123'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...