Использование QDEF в VBA

#vba #ms-access

Вопрос:

Я пытаюсь обновить локальную таблицу в базе данных Access, используя значение, переданное из события щелчка. Я хочу добавить галочки в столбец таблицы для всех тех же значений, что и для записи, на которую был сделан щелчок. Что я делаю не так с QDEF?

 Public Sub addcheckmarks(functionLocation As String)
 Dim strsql As String
 Dim qdef As QueryDef

 strsql = "PARAMETERS [CheckLocation] String; UPDATE tbl_TMP_inventory set addlocation = -1 where Location = [CheckLocation]"
 Set qdef = CurrentDb.createQueryDefs("", strsql)
 qdef!CheckLocation = functionLocation
 qdef.Execute dbFailOnError

End Sub
 

Комментарии:

1. Привет! Можете ли вы добавить некоторые детали к своему вопросу? Вы получаете сообщение об ошибке?

2. Можете ли вы рассказать нам, что происходит, когда вы запускаете код, который вы разместили здесь? Получаете ли вы неожиданные результаты? Ошибка?

3. Это CurrentDb.CreateQueryDef не CreateQueryDefs так .

4. Спасибо Андре за указание на синтаксическую ошибку, странно, что VBA не пометила ее как ошибку. Вот и все, что это было. Сейчас отлично работает, не могу поверить, что я это пропустил.

Ответ №1:

Вам не нужно создавать временный запрос для простого обновления:

 Public Sub addcheckmarks(functionLocation As String)

    Dim strsql As String
 
    strsql = "UPDATE tbl_TMP_inventory SET addlocation = True WHERE Location = '" amp; functionLocation amp; "'"
    CurrentDb.Execute strsql
 
End Sub