Ссылка на поле из запроса в аргументе DoCmd.OpenReport Wherecondition - PullRequest
0 голосов
/ 09 октября 2018

У меня есть командная кнопка, чтобы открыть отчет с фильтром, примененным к запросу.Это сделано для того, чтобы я мог фильтровать отчет по значению поля в подотчете родительского отчета, иначе критерии фильтрации были бы более простыми.Я установил Wherecondition следующим образом:

Private Sub CmdOpenReport_Click()
    DoCmd.OpenReport "rptName", , , CategoryID = [Queries].[qryFltrRptByCat]!CategoryID
End Sub

Когда я нажимаю кнопку, я получаю следующее сообщение об ошибке:

Ошибка времени выполнения '2465'

Microsoft Access не может найти поле, на которое ссылается ваше выражение.

Каков правильный синтаксис для ссылки на поле в запросе?

Запрос выглядитдля значения в подчиненной форме и находит соответствующий CategoryID для значения подчиненной формы.Это связано с тем, что данные в подчиненной форме имеют отношение многие-к-одному с CategoryID в родительской форме.

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Если CategoryID в активной форме и строка, которую вы можете использовать:

Docmd.OpenReport "rptName", , , "CategoryID = '" & Me.CategoryID & "'"

Если CategoryID в активной форме и целое / двойное число, вы можете использовать:

Docmd.OpenReport "rptName", , , "CategoryID = " & Me.CategoryID

Если CategoryID находится в главной форме, но подчиненная форма активна, вы можете использовать:

Docmd.OpenReport "rptName", , , "CategoryID = " & Me.Parent.CategoryID

И вы всегда можете использовать общую ссылку:

Docmd.OpenReport "rptName", , , "CategoryID = " & Forms!YourForm!CategoryID

Вы можете посмотреть здесь для получения дополнительной информации:

0 голосов
/ 09 октября 2018

Невозможно ссылаться на таблицы или запросы напрямую.Используйте DLookup ().Или обратитесь к элементу управления в форме.Необходимо объединить переменную в буквальную строку, не забывайте заключать в кавычки:

DoCmd.OpenReport "rptName", , , "CategoryID = " & Me.CategoryID

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