2017-02-28 5 views
-1

날짜를 표시하는 유연한 테이블이 필요합니다. 융통성있게, 1976 년 6 월 15 일에 넣어두면, 그렇게 표시됩니다. 그러나 20을 입력하면 Access는 오늘 날짜와 동일한 필드에서 20을 계산합니다 (20 년).날짜 계산 필요 MS 액세스

테이블에 날짜/시간 필드의 형식을 설정합니다 : tbl_ageLimit을 #으로 설정하여 사용자가 읽을 수있는 날짜가 아닌 일련의 날짜를 표시합니다. 이 테이블에는 ageLimit 필드가 있습니다.

날짜가 현재 상태와 관련이 없는지를 확인하고 관련 항목으로 변환하고 지속적으로 업데이트 할 다른 테이블에 넣으려는 쿼리를 개발하려고합니다.

지금 당장은 수식을 인식하고 날짜를 변환하기 위해 노력하고 있습니다. 이 엑셀에서 화려하게 작동 식이지만, MS Access에서 작동하지 않는 것 :

IIF([ageLimit]<=100,Date()-365*[ageLimit],[ageLimit]) 

필드 미만 100입니다 거기에 숫자가있는 경우 그것은 인식하지만이 일을 아니에요 수학과 새 테이블에 새 레코드를 표시합니다. 아래는 SQL입니다.

SELECT tbl_ageLimit.ageLimit INTO tbl_allAges 
FROM tbl_ageLimit 
WHERE (((tbl_ageLimit.ageLimit)=IIf([ageLimit]<=100,Date()-365*[ageLimit],[ageLimit]))); 

친절하게도 내가 뭘 잘못하고 있는지 지적 해 줄 수 있습니까? 고맙습니다.

tbl_ageLimit Time/Date Field formatted as serial datetbl_allAges showing four records instead of five. Where's the fifth record?

다섯 번째 기록 표시되지 작성된 테이블 : 요청 같이

여기 문제의 스냅 샷이다. 엉망진창.

+0

어떻게 그 공식은 Excel에서 화려하게 작동합니까 : 당신은 SELECT 절에 IIF() 표현, 장소를 평가하려는 때문에? Excel은'IIF()'를 사용하지 않습니다. * 그러나 그것은 수학을하지 않습니다 * ... 현재와 원하는 결과의 데이터를 보여주십시오. – Parfait

+0

내 디자인에 결함이 있다고 말해도 괜찮습니다. 그 목적은 여러 주마다 특정 부동산에 대한 대출법이 다르기 때문입니다. 불행히도, 어떤 사람들은 20 세라고 말하고, 다른 사람들은 1976 년 6 월 15 일 같은 확고한 날을 가지고 있습니다. –

+0

Excel에는 IIf() 수식이 있으며 IF (표현식, 참이면 true)입니다. –

답변

1

레코드를 필터링 할 필요가 없으므로 WHERE 절을 제거하는 것이 좋습니다.

SELECT IIf([ageLimit]<=100, Date()-365*[ageLimit], [ageLimit]) As [age_Limit] 
INTO tbl_allAges 
FROM tbl_ageLimit 
+0

순환 참조 대화 상자를 제공합니다. 액세스 제한 일 수 있습니까? –

+0

테이블 별칭의 이름을 바꿉니다. [age_Limit]을 사용하여 업데이트를 참조하십시오. 그런 다음 새 테이블로 다시 이름을 바꿉니다. – Parfait

+0

당신은 아름다운 사람입니다! 고맙습니다! –