0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 70
1

Переменное значение дата

05.08.2016, 16:51. Показов 631. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите можно ли использовать переменное значение даты сразу в нескольких запросах. То есть ввести переменное поле даты, к примеру 01.05.2016 и выбрать все с начала года и по эту дату по всем таблицам?

Добавлено через 7 минут
Вот так это выглядит сейчас:
SQL
1
2
3
4
5
SELECT Материалы.Исполнитель, COUNT(Материалы.К) AS [Count-К]
FROM Материалы
WHERE (((YEAR([Дата К]))=YEAR(DATE())) AND ((Материалы.[Дата К])<=DateSerial(YEAR(DATE()),5,31)))
GROUP BY Материалы.Исполнитель
HAVING (((COUNT(Материалы.К))<>0));
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2016, 16:51
Ответы с готовыми решениями:

Условие на значение Дата
Имеется небольшая база данных Городской Думы. Необходимо поставить ограничение на поле &quot;дата...

Значение по умолчанию дата + 4 месяца
Всем привет! Есть база, в которой имеются столбцы «дата создания» и «действителен до» Основная...

Значение по умолчанию в поле дата
всем привет! возможно ли как нибудь в поле дата на форме, значением по умолчанию сделать &quot;текст&quot;,...

Авто ДАТА и Последнее значение в ячейке
Всем доброго времени суток! Такой вопрос. Можно ли как-то через VBA задать автоподстановку даты...

15
Эксперт MS Access
7395 / 4532 / 295
Регистрация: 12.08.2011
Сообщений: 14,015
08.08.2016, 02:54 2
Цитата Сообщение от Mk_compoo Посмотреть сообщение
То есть ввести переменное поле даты, к примеру 01.05.2016
Прикол, константа стала переменной У вас в одном месте 01.05.2016 , а в другом месте другое 01.05.2016 ?

Может всё-таки даты нужны разные? Тогда сделайте форму с выбором дат и в запросе в условии ссылайтесь на это поле формы.
T-SQL
1
WHERE Материалы.[Дата К]) between DateSerial(YEAR(DATE()),1,1) and forms!мояформа!полесдатой
0
32 / 36 / 1
Регистрация: 22.11.2012
Сообщений: 302
08.08.2016, 07:13 3
HAVING (([Дата К]>=[Введите ДАТУ начала периода в формате ДД-ММ-ГГГГ ] And [Дата К]<=[Введите ДАТУ конца периода в формате ДД-ММ-ГГГГ ]) не пойдёт? Запрос переменных будет производиться всплывающим окошком прям из запроса.
в конструкторе на поле [Дата К]: >=[Введите ДАТУ начала периода в формате ДД-ММ-ГГГГ ] And <=[Введите ДАТУ конца периода в формате ДД-ММ-ГГГГ ]
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 70
08.08.2016, 08:53  [ТС] 4
Да, в примере дата немного другая, чем в вопросе, но суть ясна. Этот кусок - YEAR(DATE()),5,31)) в идеале хотелось бы заменить на вводимую переменную , которую использовать и в других запросах, например:
SQL
1
2
3
4
5
6
SELECT Материалы.Исполнитель, COUNT(Материалы.Исполнитель) AS [Count-Исполнитель]
FROM Материалы
WHERE (((YEAR([Дата входящий]))=YEAR(DATE()))
 AND ((Материалы.[Вид документа])="ОТК")
 AND ((Материалы.[Дата входящий])<=DateSerial(YEAR(DATE()),5,31)))
GROUP BY Материалы.Исполнитель;
С использованием новой таблицы конечно выход, если другого не найду.
Не очень удобно каждый раз менять дату.
0
Мы один, давай на "ты"
3421 / 1299 / 312
Регистрация: 16.06.2016
Сообщений: 3,044
08.08.2016, 10:11 5
Mk_compoo, не работай напрямую с таблицами. Тебе интервал нужен? посмотри мой пример https://www.cyberforum.ru/post9438149.html
Посмотри как формируется фильтр на интервал в месяц.
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 70
08.08.2016, 10:44  [ТС] 6
Панург, дело в том, что мне не надо знать содержание записей, мне просто нужны количественные показатели , сгруппированные по полю "Исполнитель".
0
Мы один, давай на "ты"
3421 / 1299 / 312
Регистрация: 16.06.2016
Сообщений: 3,044
08.08.2016, 10:51 7
Mk_compoo, не имеет значения, будешь ты смотреть через форму или "просто нужны количественные показатели" фильтр составляется одинаково.
А то как ты составляешь не очень правильно - будет притормаживать, т.к. все данные придётся прогонять через (((YEAR([Дата входящий]))
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 70
08.08.2016, 11:12  [ТС] 8
Панург, у меня по любому все гоняется через кучу условий, такая специфика. не получается просто использовать фильтра.
Идея с новой таблицей alvk, сейчас как то блице. Единственное наверно надо при открытии формы каждый раз обновлять периоды подсчета, через запрос на запись наверно надо попробовать реализовать. В этом случаи я интервал могу использовать везде, просто указав источники в таблице.
0
Мы один, давай на "ты"
3421 / 1299 / 312
Регистрация: 16.06.2016
Сообщений: 3,044
08.08.2016, 11:37 9
Цитата Сообщение от Mk_compoo Посмотреть сообщение
у меня по любому все гоняется через кучу условий, такая специфика. не получается просто использовать фильтра.
Не видя предмета разговора, невозможно о нём судить. То что ты показал - фильтр не оптимальный
SQL
1
2
3
WHERE ([Дата входящий] BETWEEN DateSerial(YEAR(DATE()),1,1) 
                           AND DateAdd("d",-1, DateSerial(YEAR(DATE()),6,1)))
                  AND Материалы.[Вид документа]="ОТК"
Я так и не понял как ты используешь запросы. Объясни механизм, почему таблицы разные, а не одна. Возможно если ты дашь больше информации будут и конкретные предложения.
1
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 70
08.08.2016, 13:06  [ТС] 10
Панург, переделал, действительно так понятнее работает. Спасибо! Только вот по первому коду если переделываю аналогично, считает почему то не верно.
0
Мы один, давай на "ты"
3421 / 1299 / 312
Регистрация: 16.06.2016
Сообщений: 3,044
08.08.2016, 14:04 11
Mk_compoo, мне кажется/догадываюсь, что так надо
SQL
1
2
3
4
SELECT Исполнитель, К, COUNT(К) AS [Count_К]
FROM Материалы
WHERE [Дата К] BETWEEN DateSerial(YEAR(DATE()),1,1) AND DateAdd("d",-1, DateSerial(YEAR(DATE()),6,1))
GROUP BY Исполнитель, К;
Не?
У меня опять кофейная гуща кончилась...
1
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
08.08.2016, 14:57 12
Цитата Сообщение от Панург Посмотреть сообщение
DateAdd("d",-1, DateSerial(YEAR(DATE()),6,1))
Это выражение полностью идентично более короткому DateSerial(YEAR(DATE()),6,0)
Visual Basic
1
2
3
4
?DateAdd("d",-1, DateSerial(YEAR(DATE()),6,1))
31.05.2016 
?DateSerial(YEAR(DATE()),6,0)
31.05.2016
2
Мы один, давай на "ты"
3421 / 1299 / 312
Регистрация: 16.06.2016
Сообщений: 3,044
08.08.2016, 15:33 13
Цитата Сообщение от mobile Посмотреть сообщение
Это выражение полностью идентично...
да, тоже самое, но менее прозрачно. Применение 2 функций работы с датой/временем наглядней.
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 70
09.08.2016, 13:31  [ТС] 14
А как реализовать условие по дате с.. по... в VBA?
0
Мы один, давай на "ты"
3421 / 1299 / 312
Регистрация: 16.06.2016
Сообщений: 3,044
09.08.2016, 15:31 15
Цитата Сообщение от Mk_compoo Посмотреть сообщение
А как реализовать условие по дате с.. по... в VBA?
В каком смысле?
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 70
09.08.2016, 19:52  [ТС] 16
Панург, вот так я реализовал:
SQL
1
2
3
4
5
SELECT Материалы.Исполнитель, COUNT(Материалы.Исполнитель) AS [Count-Исполнитель]
FROM Материалы, ПериодВ
WHERE (((Материалы.[Дата входящий]) BETWEEN (ПериодВ.ДатаН) AND (ПериодВ.ДатаК)) AND ((Материалы.[Вид документа])<>"Отк"))
GROUP BY Материалы.Исполнитель, Nz([К])
HAVING (((Nz([К]))=""));
Всем спасибо за помощь. Кому интересно могу подробнее расписать.
0
09.08.2016, 19:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2016, 19:52
Помогаю со студенческими работами здесь

Значение по умолчанию для поля дата
Доброе утро, при загрузке формы стоит код Me.Т_Тип_Код.DefaultValue = 8 Me.КодП.DefaultValue =...

Вот какая дилемма? дата вызова =значение по умолчанию
главная форма. нажимаю на принять вызов. код соответствующий =1. сохраняется в колонке &quot;вызов&quot;...

Access запрос Есть два поля : дата начало и дата окончания
Есть два поля : дата начало и дата окончания. Если дата находиться в диапазоне то нужно выводить...

Переменное имя таблицы
Подскажите, как сохранить результаты запроса в таблице с именем = переменной (у меня - это название...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru