Передача параметров для запроса с VBA в Access и получение "" - PullRequest
0 голосов
/ 11 мая 2019

Не похоже, что я могу просто построить запрос в VBA, что я обычно делаю.

У меня есть форма, где пользователи выбирают параметры из списков и тому подобное. Они нажимают кнопку «Отправить», которая должна отфильтровать таблицу, чтобы они могли вносить изменения только в эти записи. Эта таблица встраивается в ту же форму внизу формы. Пусто, пока они не установят параметры и не отправят.

Поскольку это таблица в форме и подчиненная форма / подчиненный отчет, из того, что я прочитал, единственный способ заполнить ее - это предварительно подготовленный запрос Access. Таким образом, мне нужно передать переменные, чтобы сделать его динамическим.

Итак, запрос numberSections таков:

SELECT title, group, group_num
FROM groupings
WHERE co = [co] AND project = [project]
ORDER BY ID;

Насколько я понимаю, в скобках указана переменная.

VBA такой:

Function RunQueryForGroupings(coProj As Collection)

    Dim qdf As DAO.QueryDef
    Set qdf = CurrentDb.QueryDefs("numberSections")
    qdf.Parameters("co").Value = coProj(1)
    qdf.Parameters("project").Value = coProj(2)
    qdf.Execute
    Set qdf = Nothing

End Function

Когда он достигает qdf.Parameters("co").Value = coProj(1), я получаю следующую ошибку:

Run-time error '3265':

Item not found in this collection.

Сначала я подумал, что coProj(1) по какой-то причине не имеет значения, но это так, потому что я могу Debug.Print(coProj(1)), так что это связано с объявлением.

Есть предложения?

1 Ответ

1 голос
/ 11 мая 2019

Установка параметров в querydef не поможет вам в запросе SELECT, который является источником записей формы. Это было бы полезно только для открытия набора записей.

qdf.Execute действителен только для запросов действий (INSERT, UPDATE, DELETE).

Но это не имеет значения - если вы хотите динамически заполнить подчиненную форму, просто обращайтесь к ней так:

Me.mySubformControl.Form.RecordSource = strDynamicSQL

Формы: см. Свойства и элементы управления формы и подчиненной формы

...