У меня есть форма в MS Access (365), которая принимает различные критерии выбора и запускает отчет с этими критериями, встроенными в условие where команды DoCmd.OpenReport
. Отчет запускается с помощью кнопки с кодом VBA On Click, поскольку необходимо создать условие, в соответствии с которым, если таковые имеются, были выбраны критерии. Это все работает нормально, когда я открываю форму выбора критериев напрямую. Я хочу открыть форму критериев выбора через форму навигации, поскольку в той же форме навигации будут запускаться другие похожие отчеты с критериями выбора.
Как указано выше, все работает, когда я непосредственно открываю форму критериев выбора и запускаю отчет, но когда я пробовал его через форму навигации, он не работал. Это нормально, я нашел решение на сайте MS Dev Center , которое работает, когда я запускаю форму критериев выбора (а затем и отчет) из формы навигации. Все хорошо. Но тогда (конечно) ссылки в кнопке «Код щелчка» не работают, когда я непосредственно открываю форму критериев выбора и запускаю отчет. Я хотел бы иметь возможность запустить форму критериев выбора, а затем отчет с обеих позиций - непосредственно из MS Access и через форму навигации. Вероятно, будет какой-то способ достичь этого, но (как я уже говорил выше, я новичок в MS Access и VBA), я мог бы потратить много времени, цепляясь за тени. Надеюсь, кто-нибудь сможет подсказать мне самый простой способ сделать это?
Пример кода с соответствующими комментариями ниже. При запуске критериев выбора формируются и сообщаются напрямую, строка прокомментирована как AAA работает нормально, MsgBox ABB и DDD и те, которые за пределами всего шоу; при запуске их через навигационную форму строка BBB работает нормально, MsgBox ABB и DDD и все, что за пределами этого показано (ну, они бы хотели, за исключением того, что я еще не закодировал опцию [NavigationSubform] во всех других компонентах, где строится вторая часть). Когда я переключаю линии AAA и BBB (т.е. комментирую другую), MsgBox AAA показывает нормально, тогда происходит сбой с:
Не удается найти ссылочную форму "frmSelectSpeciesSiteDates"
до достижения MsgBox DDD.
MsgBox "ABB"
'If Not Forms![frmSelectSpeciesSiteDates]![cboCommonName] = "" Then
' AAA Works when frmSelectSpeciesSiteDates is run directly
If Not Forms![frmNavSelectiveReports]![NavigationSubform].[Form]![cboCommonName] = "" Then
' BBB Works when frmSelectSpeciesSiteDates is called from a navigation form
strWhereCondition = strWhereCondition & "[common name] = " & Chr(34) & Me![cboCommonName] & Chr(34)
End If
MsgBox "DDD"