Как исправить 'Ожидаемые n параметров' в запросе выбора vba - PullRequest
0 голосов
/ 24 сентября 2019

У меня был существующий запрос VBA, который я изменил, чтобы вернуть несколько дополнительных полей.Теперь при открытии набора записей этого запроса я получаю исключение, которое уведомляет меня о том, что в запросе отсутствует параметр:

Ошибка времени выполнения '3061': слишком мало параметров.Ожидается 3.

Каким-то образом вновь добавленные поля рассматриваются как параметры.

Когда я открываю этот запрос в доступе, новые поля возвращаются в записи.Я попытался удалить одно из новых полей, а затем заметил, что количество пропущенных параметров уменьшилось.Нет места, где я бы пометил этот запрос как имеющий параметры.

Dim query As String

query = "SELECT DATA, NAME, LOCATION, NEWFIELD1, NEWFIELD2, NEWFIELD3, NEWFIELD4 FROM qryAccesQuery WHERE NAME='FOOBAR';"

Dim qdef As QueryDef
Set qdef = CurrentDb.CreateQueryDef("newQuery", query)

Dim rs As RecordSet
Set rs = qdef.OpenRecordSet ' Run-time error '3061': Too few parameters. Expected 3.

Проблема / решение могут быть довольно очевидными, но я довольно новичок в разработке vba.

1 Ответ

0 голосов
/ 24 сентября 2019

Проблема заключалась в том, что какой-то устаревший код перезаписывал существующий запрос.

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

Урок, который я усвоил сегодня, заключается в том, что вам нужно искать по всему приложению и ничего не предполагать при работе с устаревшим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...