#date-range #ms-access-2016 #criteriaquery
Вопрос:
MS Access 2016,
У меня есть несколько запросов — примерно 120 — которые собирают временную историю на основе критериев даты, которые я в настоящее время обновляю вручную для каждого запроса — >=#8/1/2021#
И <#9/1/2021#
— за август 2021 года.
Каким было бы лучшее решение обновить это в одном месте, чтобы все запросы могли ссылаться на этот диапазон дат?
Пример запроса: (Обычно 43 точки параметров)
SELECT
History1HourAverage.TimeStamp,
History1HourAverage.Parameter001,
History1HourAverage.Value001,
History1HourAverage.Parameter002,
History1HourAverage.Value002,
History1HourAverage.Parameter003,
History1HourAverage.Value003,
History1HourAverage.Parameter004,
History1HourAverage.Value004
FROM History1HourAverage
WHERE
(
(
***(History1HourAverage.TimeStamp)>=#8/1/2021#
AND (History1HourAverage.TimeStamp)<#9/1/2021#
)***
AND ((History1HourAverage.Parameter001)="10S8MApp.nvoSpaceTemp")
AND ((History1HourAverage.Parameter002)="10S9MApp.nvoSpaceTemp")
AND ((History1HourAverage.Parameter003)="10S10MApp.nvoSpaceTemp")
AND ((History1HourAverage.Parameter004)="10S11MApp.nvoSpaceTemp")
);
Спасибо
Ответ №1:
Пара вариантов:
Любой
Добавьте таблицу под названием DateRange с двумя полями, дата начала и дата окончания. Введите в эту таблицу одну запись с диапазоном дат, который вы хотите использовать для своих запросов. Отредактируйте каждый из ваших запросов и включите таблицу диапазона дат. Установите критерии для запроса в WHERE History1HourAverage.TimeStamp >= DateRange.StartDate And History1HourAverage.TimeStamp < DateRange.EndDate
Альтернативно
Создайте модуль VBA с двумя функциями
Public Function StartDate() As Date
StartDate = #8/1/2021#
End Function
Public Function EndDate() As Date
EndDate = #9/1/2021#
End Function
Установите критерии запроса для запроса в WHERE History1HourAverage.TimeStamp >= StartDate() And History1HourAverage.TimeStamp < EndDate()
Когда вы хотите использовать другой диапазон дат, вы либо (1) редактируете данные в таблице диапазонов дат, либо (2) редактируете свои функции, чтобы вернуть новые даты.
Комментарии:
1. Сработало идеально. Спасибо!