양식의 두 날짜 (예 : >=Forms!frmReport!StartDate AND <=Forms!frmReport!EndDate
)를 기반으로 레코드를 반환하는 select 쿼리가 있습니다. 사용자가 StartDate
과 EndDate
모두에 같은 날짜를 입력 할 때마다 기준과 일치하는 테이블에 데이터가 있다고하더라도 레코드가 반환되지 않습니다. 쿼리가 정보를 반환하지 않는 이유는 누구나 말할 수 있습니까?양식에서 날짜가 포함 된 쿼리를 실행하는 방법은 무엇입니까?
1
A
답변
1
필드가 비교 rs("Date")
입니다되는 경우, 쿼리 빌더
Int(rs("Date")) >=Forms!frmReport!StartDate AND Int(rs("Date")) <=Forms!frmReport!EndDate
을하려고 이런 일에 날짜 확인 필드를 수정 :
이의 이름으로 YourDateField
교체 당신의 분야.
그리고 시간이 관련된 경우, 쿼리 빌더에서 필드 표현을 제거하고 대신 레코드의 필드를 비교 해보세요 : 종료 날짜가 시작 날짜와 같은 경우
>=Forms!frmReport!StartDate AND <= iif(Forms!frmReport!EndDate = Forms!frmReport!StartDate, dateadd("d",1,Forms!frmReport!EndDate), Forms!frmReport!EndDate)
이 표현은 말한다 하루를 추가하십시오. 그렇지 않으면 종료일을 사용하십시오.
1
캐스트 쿼리에 단지 날짜 값으로 폼 값 :
>= cdate(Forms![frmReport]![StartDate]) and <= cdate(Forms![frmReport]![EndDate])
대신 =now()
의, 날짜 만 캡처 =date()
로 필드 기본값을 설정합니다.
+0
cdate 귀하의 제안에 대한 감사하지만 어떤 결과를 반환하지 않았다. 심지어 기본값을'Date()'로 변경 한 후에도 기존 데이터에는 이미 시간이 첨부되어 있습니다. – Kefash
해당 레코드에 시간이 포함되어 있으면 조건이 기존 레코드를 반환하지 않는다고 생각할 수 있습니다. 오늘 날짜 기준은 <= 41757 AND> = 41757 일 수 있으며 기록에는 41757.63875가 포함될 수 있습니다. 같은 날이지만 기준을 벗어났습니다. – geoB
데이터를 캡처 할 때 필드의 기본값은'= Now()'로 설정되어 필드에 시간이 포함됩니다. 지금은 테이블의 관련 필드에서 시간을 제거하면 정보가 나타납니다. 그것은 내가 날짜와 시간을 따로 잡아야한다는 것을 의미합니까? – Kefash
시간 관련 있습니까? 그렇다면 우리는 기준을 달리 다르게 만들어야 할 것입니다. 그렇지 않은 경우 아래 Yawar의 설명을 참조하십시오. – geoB