MS Access / SQL - применение условия времени к нескольким запросам одновременно - PullRequest
1 голос
/ 29 июня 2011

У меня более 300 запросов, которые выбирают информацию из моей базы данных.В настоящее время в запросах не указано условие времени, поэтому, если бы я хотел отфильтровать их все по определенному периоду времени, то есть между # 07/01/2009 # и # 08/01/2009 #, мне пришлось бывручную перейдите к каждому запросу и добавьте это условие.

Все мои запросы заполняют данные в 4 основных отчета.То, что я пытаюсь сделать, - это применить критерии временной фильтрации, подобные приведенному выше, ко всем моим запросам одновременно, чтобы я мог создать еженедельный отчет, а также отчет «Итоги» (что означает, что нет временных условий).

Есть ли какой-нибудь простой способ добавить один параметр перед извлечением моего отчета, который бы отфильтровывал все мои запросы одновременно, и извлекать итоговый отчет, если поле параметра было пустым?

1 Ответ

1 голос
/ 29 июня 2011

Вы можете использовать ссылку на элемент управления формы в предложении WHERE запроса. Так, например, если у меня есть открытая форма с именем frmDatePicker, которая включает элемент управления текстового поля с именем txtStartdate, я мог бы использовать значение этого элемента управления в качестве условия WHERE.

SELECT *
FROM MyTable
WHERE my_date_field >= Forms!frmDatePicker!txtStartDate;

Такой подход может сработать, но я понятия не имею, подходит ли он для вашей ситуации. Вы должны будете изменить все ваши запросы, которые включают условие даты. Это может быть единовременным изменением. Но если вы когда-нибудь измените форму и / или имя элемента управления, вам придется пересмотреть запросы снова. (Поэтому постарайтесь не делать этого!)

Редактировать : Если вы хотите, чтобы пользователь оставлял txtStartDate пустым, чтобы вообще не фильтровать эту дату, попробуйте предложение WHERE, например:

WHERE
    my_date_field >= Forms!frmDatePicker!txtStartDate
    Or Forms!frmDatePicker!txtStartDate Is Null;
...