2017-05-03 104 views
0

我有一个查询从指定的日期范围内的表中检索记录,并将它们插入到新表(VWDRSSTA)中。MS日期之间的访问查询

尽管日期之间的这种特定搜索没有按预期工作。我正在使用Where(Field)Between(Start)and(End)表达式,但由于它没有从结束日期发出任何记录,所以存在问题。

这里是我的查询

INSERT INTO VWDRSSTA (SYSTEM, EREIGNIS, DATUM_ZEIT, ANTRAGSNUMMER, 
VORGANGSNUMMER, VERS_NR_INT, DUNKEL, DOK_ART) 
SELECT VWD.SYSTEM, VWD.EREIGNIS, VWD.DATUM_ZEIT, VWD.ANTRAGSNUMMER, 
VWD.VORGANGSNUMMER, VWD.VERS_NR_INT, IIf(VWD.EREIGNIS="POL_AN" And 
VWD.DUNKEL=1,1,0) AS DUNKEL, IIf(VWD.EREIGNIS="EIN-ES" And 
VWD.DOK_ART="EN","EN","") AS DOK_ART 
FROM VWD 
WHERE ([VWD.DATUM_ZEIT]) Between [Forms]![overview]![start] And [Forms]! 
[overview]![end]; 

我一直在使用

WHERE ([VWD.DATUM_ZEIT]) >= [Forms]![overview]![start] <= [Forms]! 
[overview]![end]; 

尝试,但它给了我一个溢出错误。我怎么解决这个问题?

回答

0

指定数据类型的参数:

PARAMETERS 
    [Forms]![overview]![start] DateTime, 
    [Forms]![overview]![end] DateTime; 
INSERT INTO VWDRSSTA 
    (SYSTEM, 
    EREIGNIS, 
    DATUM_ZEIT, 
    ANTRAGSNUMMER, 
    VORGANGSNUMMER, 
    VERS_NR_INT, 
    DUNKEL, 
    DOK_ART) 
SELECT 
    VWD.SYSTEM, 
    VWD.EREIGNIS, 
    VWD.DATUM_ZEIT, 
    VWD.ANTRAGSNUMMER, 
    VWD.VORGANGSNUMMER, 
    VWD.VERS_NR_INT, 
    IIf(VWD.EREIGNIS="POL_AN" And VWD.DUNKEL=1,1,0) AS DUNKEL, 
    IIf(VWD.EREIGNIS="EIN-ES" And VWD.DOK_ART="EN","EN",Null) AS DOK_ART 
FROM 
    VWD 
WHERE 
    ([VWD.DATUM_ZEIT]) Between 
     [Forms]![overview]![start] And 
     [Forms]![overview]![end]; 

要忽略时间部分:

WHERE 
    [VWD.DATUM_ZEIT] >= [Forms]![overview]![start] And 
    [VWD.DATUM_ZEIT] < DateAdd, "d", 1, [Forms]![overview]![end]); 
+0

还是一样!我没有从'结束'日期获得记录。 –

+0

这与溢出错误不一样。这甚至不是一个错误。 – Gustav

+0

如果缺少结束日期的记录,则在'[VWD.DATUM_ZEIT]'中有时间部分。因此,要么删除这个,并调整你的代码保存将来的记录使用Date()'而不是'Now()'。或者调整你的SQL(见编辑)。 – Gustav