Невозможно использовать оператор query.execute в VBA при доступе ms - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть сохраненный запрос, который я хочу запустить из vba.Запрос называется «211_AppendToBackdated_Tracer»

DoCmd.OpenQuery "211_AppendToBackdated_Tracer"   'This line works
CurrentDb.Execute "211_AppendToBackdated_Tracer" 'This line and next fail
CurrentDb.QueryDefs("211_AppendToBackdated_Tracer").Execute dbFailOnError

Я могу выполнить его с помощью DoCmd.OpenQuery, и это работает, но ни один из других методов, которые должны работать, похоже, не работает должным образом.

Я получаюошибка SQL, поэтому он пытается выполнить запрос.Ошибка «Слишком мало параметров. Ожидается 1».

Я бы предпочел использовать метод execute, так как для этого не требуется отключать системные предупреждения (я хочу знать, если запрос не выполнен, а не сколько записейбудут добавлены и т. д.)

1 Ответ

0 голосов
/ 07 февраля 2019
DoCmd.OpenQuery "211_AppendToBackdated_Tracer"   'This line works

Это потому, что ваш запрос является запросом .

CurrentDb.Execute "211_AppendToBackdated_Tracer" 'This line and next fail
CurrentDb.QueryDefs("211_AppendToBackdated_Tracer").Execute dbFailOnError

Это потому, что запрос не является запросом действия ( обновление, добавление или удаление *).1008 *)

Выполнить с параметром:

Set qdy = CurrentDb.QueryDefs("211_AppendToBackdated_Tracer")
qdy.Parameter(0).Value = somevalue
qdy.Execute dbFailOnError
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...