필드 값을 표시하기 위해 텍스트 상자를 사용하는 MS 액세스 보고서를 작성하려고합니다. 다음을 나타내는 다른 텍스트 상자가 있습니다. 첫 번째 값은 별도의 테이블에있는 항목보다 높거나 낮습니다.MS 액세스 식 작성기를 사용하여 한 테이블의 필드를 다른 테이블의 DLookup과 비교하십시오.
보고서에는 "Table 1"의 레코드 원본과 "Value1"필드에 숫자를 표시하는 "txt_Value1"이라는 텍스트 상자가 있습니다. 두 번째 테이블 인 "Customer_Criteria"에는 비교 대상 필드 "PassValue"가 있습니다. 내 표현식 작성기 문은 다음과 같습니다.
IIf([txt_Value1]<(DLookUp("[PassValue]","[Customer_Criteria]","[Customer] = 'ABC'")),"TRUE","FALSE")
이 문은 올바른 논리 결과가 무엇인지에 관계없이 항상 false를 반환합니다. 나는 그것을 테스트 한
, 쓰기 :
IIf(1<(DLookUp("[PassValue]","[Customer_Criteria]","[Customer] = 'ABC'")),"TRUE","FALSE")
그리고 정확한 결과를 얻을 수 있습니다. 또한, 내가 쓰는 경우 :
IIf([txt_Value1]< 1,"TRUE","FALSE")
나는 정확한 결과를 얻는다. 텍스트 상자 값과 Dlookup을 비교하기 위해 누락 된 점은 무엇입니까?
'PassValue'는 아마도 이미 int입니다. 이 경우 두 번째 'CLng'은 필요하지 않습니다. 또한 'txt_Value1'이 null이되거나 DLookup이 널 (null PassValue)를 반환하지 못하도록하거나 (조건에 일치하는 레코드가없는 경우) 시스템에있는 다른 유효성 검사에 따라'Nz'가 필요하지 않을 수도 있습니다. . 마지막으로'txt_Value1'에 타이핑 된 것이 숫자인지 확인해야합니다. – SunKnight0