2

現在、フォームの日付フィールドを使用するクエリがあります。すべてが正常にコンパイルされます。問題は、これを拡張しようとしたときです。フォームに表示されている日付の1日前の日付を指定したい。日付を取得するために使用される現在のSQLは

WHERE ((DateValue([TIMESTAMP]))=[Forms]![Frm_Start]![Date]) 

ただし、最後に+ 1を追加しようとすると、次のメッセージが表示されます。

式の入力が間違っているか、複雑すぎて評価できません。

アドバイスをいただければ幸いです。

4

3 に答える 3

2

SQLの最初の行として句を使用してPARAMETERS、フォームコントロールに日付/時刻値が含まれていることをデータベースエンジンに通知します。

PARAMETERS Forms!Frm_Start![Date] DateTime;

次にDateAdd()、WHERE句でパラメータを使用します。

WHERE DateValue([TIMESTAMP])=DateAdd("d", 1, Forms!Frm_Start![Date])

ただし、これDateValue()にはテーブルのすべての行に対して実行する必要があります。[TIMESTAMP]これは、インデックスを作成するとより高速になるはずです。

WHERE
        [TIMESTAMP] >= DateAdd("d", 1, Forms!Frm_Start![Date])
    AND [TIMESTAMP] < DateAdd("d", 2, Forms!Frm_Start![Date])
于 2013-01-21T16:32:19.143 に答える
0

1つの可能性は次のとおりです。

SELECT Table1.[ADateTime]
FROM Table1
WHERE Table1.[ADateTime] Like ([forms]![Table1]![ADate]+1) & "*"

日付は小数点を時間として持つ数値であるため、別の可能性があります。

SELECT Table1.ADateTime
FROM Table1
WHERE CLng([ADateTime])=[forms]![Table1]![ADate]+1
于 2013-01-21T16:27:46.573 に答える
0

dateadd関数を試してください:

`dateadd("d",1,mydatefield)`
于 2013-01-21T16:28:59.083 に答える