2017-05-03 105 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