我正在采取大量方法来实现这一目标。
我需要根据表dbAwarieZamkniete
生成报告。
我需要从ALL
抓取dbAwarieZamkniete
,所以当我从访问表单中的文本框中选择short date
时,基于我想要运行query
将获取数据。
我想说我需要从10.05.2016开始的记录,这意味着我需要记录从10.05.2016 06:00到2016年6月11日06:00。
我的方法有所不同,我试过union
例如,我不会在这里粘贴所有这些,这只是一个例子:
SELECT *
FROM dbAwarieZamkniete AS AwaZam
WHERE Format(AwaZam.dataZgloszenia, "d-m-yyyy") = '03.09.2015'
AND ( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '06:00' AND '23:59' )
UNION ALL
SELECT *
FROM dbAwarieZamkniete AS AwaZam
WHERE Format(AwaZam.dataZgloszenia, "d-m-yyyy") = '04.09.2015'
AND (( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '00:00' AND '06:00' );
dataZgloszenia包含日期(作为d.m.yyyy) - 短日期
godzinaZgloszenia包含时间(h:m) - 短时间
答案 0 :(得分:3)
始终将日期作为日期处理,而不是文本,没有例外。
所以:
SELECT *
FROM dbAwarieZamkniete AS AwaZam
WHERE AwaZam.dataZgloszenia + AwaZam.godzinaZakonczenia
Between
DateAdd("h", 6, #2016/05/10 00:00:00#)
And
DateAdd("h", 6 + 24, #2016/05/10 23:59:59#)
使用文本框中的日期:
SELECT *
FROM dbAwarieZamkniete AS AwaZam
WHERE AwaZam.dataZgloszenia + AwaZam.godzinaZakonczenia
Between
DateAdd("h", 6, DateValue([Forms]![YourForm]![YourTextbox]))
And
DateAdd("h", 6 + 24, DateValue([Forms]![YourForm]![YourTextbox]) + #23:59:59#)
答案 1 :(得分:0)
您将日期设为d.m.yyyy
,但在您使用的代码中
d-m-yyyy
。
SELECT *
FROM dbAwarieZamkniete AS AwaZam
WHERE Format(AwaZam.dataZgloszenia, "d.m.yyyy") = '03.09.2015'
AND ( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '06:00' AND '23:59' )
UNION ALL
SELECT *
FROM dbAwarieZamkniete AS AwaZam
WHERE Format(AwaZam.dataZgloszenia, "d.m.yyyy") = '04.09.2015'
AND (( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '00:00' AND '06:00' );
如果需要,您可以同时加入这两个条件。
SELECT *
FROM dbAwarieZamkniete AS AwaZam
WHERE (
Format(AwaZam.dataZgloszenia, "d.m.yyyy") = '03.09.2015'
AND
(Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '06:00' AND '23:59' )
)
or (
Format(AwaZam.dataZgloszenia, "d.m.yyyy") = '04.09.2015'
AND
( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '00:00' AND '06:00' )
)