Существует простой способ заставить запрос запрашивать месяц при его запуске: в запросе поместите [Enter Month] в то же место, где у вас теперь есть название месяца.
Когда запрос выполняется, появится диалоговое окно для ввода месяца. Вы можете поместить любой текст в квадратные скобки - он не должен говорить «месяц»; это просто определяет, что скажет диалоговое окно. Этот метод называется «запросом параметров».
Выполнение всех 6 запросов за один шаг потребует кода VBA - но очень простой код. Ваши конечные пользователи не должны ничего знать о VBA - им нужно всего лишь открыть форму и нажать кнопку.
Создайте форму, поместите одну кнопку на нее. В списке свойств этой кнопки выберите вкладку «События», а затем событие «При нажатии». Нажмите кнопку «...» для события On Click.
Откроется окно кода VBA с курсором в правильном месте - Private Sub Command0_Click - где Command0 - это имя кнопки. Введите код, как показано ...
Подставьте правильные имена для ваших запросов и повторите строку кода столько раз, сколько необходимо. После открытия формы и нажатия кнопки все запросы будут выполняться одновременно.
Следующий шаг
Финальным улучшением будет ввод параметра один раз и автоматическое применение его ко всем запросам. Это требует нескольких шагов.
В окне кода VBA создайте код «Модуль». Щелкните правой кнопкой мыши на панели проекта окна и выберите «Вставить / Модуль»:
В новом модуле добавьте этот код:
gstrMonth - это строка глобальной переменной, которая содержит название месяца. Функция GetMonth будет использоваться в запросах для получения этого значения.
Теперь измените код Form1 на это:
В подпункте «AskForMonth» отображается диалоговое окно, в котором пользователь может ввести название месяца. Этот вход присваивается переменной gstrMonth.
В коде Command0 (кнопка) мы добавляем AskForMonth перед выполнением запроса. Снова, повторите строку «DoCmd» для каждого запроса с правильными именами запроса.
Последний шаг - заменить параметр в запросах вызовом функции «GetMonth». Вместо [Введите месяц] в критериях запроса поставьте «GetMonth ()».
Я надеюсь, что это побудит вас использовать некоторые возможности VBA для автоматизации ваших задач доступа!