访问2016报告缺少日期之间的数据字段

时间:2016-11-28 00:20:39

标签: date report access between

我想创建一份报告,汇总最近14个工作日的数据。这意味着报告需要排除星期六和星期日(也许假期)。

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

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

当我在表格中查询过去两周的条目时,我在查询中使用以下表达式:

 >=#11/24/2016#

如果日期在过去2周内且特定交易的时间是午夜,即00:00,则查询返回产品和数量。如果时间不是午夜,则查询返回产品,但数量字段为空。如果我使用date()或now()并不重要。如果我使用实际日期,例如:

,则无关紧要
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);

因此,完整的查询是:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List; 

public class ReadIntFromFile {

     public static void main(String []args){
        String fileName = "numbers_line.txt";
        List<String> numbersArrayList = new ArrayList<String>();

        try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
            String line;
            while ((line = br.readLine()) != null) {
                numbersArrayList = Arrays.asList(line.split(" "));
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        String[] numbersStringArray = new String[numbersArrayList.size()];
        numbersStringArray = numbersArrayList.toArray(numbersStringArray);
        int[] numbersIntArray = new int[numbersStringArray.length];
        for(int i = 0;i < numbersStringArray.length;i++) {
            numbersIntArray[i] = Integer.parseInt(numbersStringArray[i]);
        }

        for(int x : numbersIntArray)
             System.out.println(x);
     }
}

当表格字段属性包含&#34; hh:nn&#34;时,如何显示产品和数量?而且时间不是00:00?我需要查询是动态的,所以我需要使用date()或now()而不是特定的日期。

1 个答案:

答案 0 :(得分:0)

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