2013-01-21 2 views
2

현재 양식의 날짜 필드를 사용하는 쿼리가 있습니다. 모든 것이 잘 컴파일됩니다. 문제는이 확장을 시도 할 때입니다. 양식에 표시된 날짜보다 하루 앞당겨 날짜를 지정하고 싶습니다.액세스 쿼리에서 양식의 날짜 필드 사용

표현이 잘못 입력, 또는 너무 복잡하다 : 나는 끝까지 + 1을 추가 할 때 날짜를 잡기 위해 사용되는 나의 현재 SQL은이 메시지를 표시하지만

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

입니다 평가.

모든 조언을 주시면 감사하겠습니다.

답변

2

사용 A :

SELECT Table1.ADateTime 
FROM Table1 
WHERE CLng([ADateTime])=[forms]![Table1]![ADate]+1 
+0

TIMESTAMP와 Date는 모두 예약어입니다. 가능한 경우 이름을 변경하도록 제안하십시오. – HansUp

+0

고마워, 그게 잘됐다. – robbiecutting

0

하나의 가능성은 다음과 같습니다

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

날짜는 시간과 소수와 숫자, 그래서 또 다른 가능성 :

`dateadd("d",1,mydatefield)` 
0

는 DATEADD 기능을보십시오 PARAMETERS SQL의 첫 번째 줄에 db 엔진에 양식 contro를 알리는 절 l 날짜/시간 값을 포함합니다.

PARAMETERS Forms!Frm_Start![Date] DateTime; 

그런 다음 WHERE 절에 DateAdd()와 매개 변수를 사용

그러나
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])