2016-11-28 69 views
0

我想创建一个汇总过去14个工作日内的数据的报告。这意味着报告需要排除周六和周日(以及可能的假期)。访问2016年报告缺少日期间数据的字段

我仍在研究如何做到以上几点。我相信这将是一个vba解决方案。但现在我遇到了另一个我不知道如何解决的问题。

我的表格包含产品,数量和输入日期的字段(存储为“mm/dd/yyyy hh:nn”)。

当我查询我的表在过去2周我在使用查询下面的表达式条目:

Between DateAdd("d",1,Now()) And DateAdd("d",-14,Now()) 

如果日期在过去2周内上的具体交易时间为午夜即00:00,查询返回产品和数量。如果时间不是午夜,则查询将返回产品,但数量字段为空。如果我使用date()或now(),则无关紧要。

>=#11/24/2016# 

所以,完整的查询是:

TRANSFORM Sum(tblWarehouseTransfer.Qty) AS SumOfQty 
SELECT tblWarehouseTransfer.ProductID 
FROM tblWarehouseTransfer 
WHERE (((tblWarehouseTransfer.DateMoved) Between DateAdd("d",1,Now()) And DateAdd("d",-14,Now()))) 
GROUP BY tblWarehouseTransfer.ProductID 
ORDER BY tblWarehouseTransfer.ProductID 
PIVOT (Date())-[datemoved]+1 In (1,2,3,4,5,6,7,8,9,10,11,12,13,14); 

我怎样才能获得产品和数量,以显示表的字段属性时,如果我用一个实际的日期,例如没关系包括“hh:nn”,时间不是00:00?我需要查询是动态的,所以我需要使用date()或now()而不是特定的日期。

回答

0

我想出了解决问题的方法。我通过在表格中创建一个仅包含小时和分钟即“短时间”的新字段,将DateMoved字段拆分为2。通过将数据输入到'DateMoved'字段中作为DateValue(day()),即“短日期”,时间被截断。现在,产品和数量字段显示在报告中,并且查询保持动态。查询SQL没有改变,只是日期存储在DateMoved字段中的方式。