2017-11-30 3 views
0

텍스트 필드에 선택한 쿼리 매개 변수를 표시하려는 보고서 머리글을 작성하고 있습니다. 구체적으로 사용자는 양식에 액세스하고 사용 가능한 콤보 상자의 조합을 선택한 다음 제출 단추를 클릭하여 보고서를 생성하는 데 사용되는 쿼리에 선택한 매개 변수를 전달합니다.Access에서 Nz 및 DLookup을 사용하여 #Error를 표시 할 수 없습니다.

양식에서 콤보 상자는 조회 쿼리의 레코드를 표시합니다. 예를 들어 내 매개 변수 중 하나는 상태입니다. 상태 콤보 상자의 행 원본에는 상태 테이블의 쿼리 인 qry_StatusLookup이라는 행 원본이 있습니다. 콤보 상자에 동적 결과가 표시됩니다. 콤보 상자 열 수는 2이고 열 너비는 0, "1"로 설정됩니다. 이것은 사용자가 선택을 제출할 때 ID x 호가 조회로 전달되도록 ID C 럼 (이름 C 럼이 아 T)을 Y 인드합니다.

내 보고서 헤더에는 쿼리에 전달되는 양식에서 선택한 매개 변수가 반영되어야하는 동일한 필드가 있습니다.

=DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & [Forms]![frm_ParameterSelection]![cboStatusLookup]) 

이 대신에 ID 번호 선택된 파라미터 이름을 나타낸다 : 예를 들어, 헤더의 상태 텍스트 박스는 상기 제어 원으로 설정한다. 양식을 제출하면 값이 조회로 전달되고 보고서가 표시됩니다. 양식에서 상태를 선택하면 성공적으로 나타납니다. 그러나 사용자가 상태를 선택하지 않으면 상태로 필터링하지 않음으로써 쿼리가 성공적으로 실행되고 보고서는 정확하지만 선택된 상태 매개 변수를 표시하기로되어있는 헤더 필드는 #Error로 표시됩니다.

NZ 함수에서 Dlookup을 래핑하려고했으나 여전히 #Error는 매개 변수가 양식에서 선택되어 있지 않음을 표시합니다. 그러나 매개 변수가 양식에서 선택되면 상태가 성공적으로 표시됩니다.

내 Nz 기능의 구문에 문제가 있습니까?

=Nz(DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & [Forms]![frm_ParameterSelection]![cboStatusLookup]),"") 

또는 기술적으로 null이 아닌 쿼리에 전달되는 빈 콤보 상자 값입니까?

답변

0

오류가 널 (null), 당신은 Nz 아닌 필드에 DLookUp을 포장하고되지 않으며, 필드

다음 시도 null의 경우 DLookUp는 오류를 반환 :

DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & Nz([Forms]![frm_ParameterSelection]![cboStatusLookup], 0)) 

(귀하의 Status_ID 열에 0이없는 것으로 가정하거나 Iif(IsNull([frm_ParameterSelection]![cboStatusLookup]),을 사용할 수 있습니다)

+0

+1! 설명과 제안에 감사드립니다. Nz 함수를 제거하고 0을 추가하면 기능이 예상대로 작동합니다. 도움에 감사드립니다. (나는 upvoted하지만 나는 표시되지 않습니다하지만 기록됩니다 미만 15 rep 지점을 가지고) – dgibbons82