모두CBT

도서를 관리하기 위한 다음 폼은 [도서] 테이블을 레코드 원본으로 사용… | [컴퓨터활용능력 1급 필기] 10년 3회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 10년 3회차
도서를 관리하기 위한 다음 폼은 [도서] 테이블을 레코드 원본으로 사용한다. [도서] 테이블에는 텍스트 형식의 '저자코드' 필드가 있으며, '저자명' 필드는 [저자] 테이블에 존재한다. '저자코드'를 표시하는 'txt저자코드' 컨트롤을 이용하여 'txt저자명' 컨트롤에 '저자명'을 표시하도록 하기 위한 컨트롤 원본으로 가장 적절한 것은?
문제 이미지
1
=DLookUp(저자명,저자,"저자코드 = '"& [txt저자코드]& "'")
2
=DLookUp("저자명","저자","저자코드 = '"& [txt저자코드]& "'")
3
=DLookUp("저자","저자명","저자코드 = '"& [txt저자코드]& "'")
4
=DLookUp(저자,저자명,"저자코드 = '"& [txt저자코드]& "'")
해설

DLookUp 함수는 =DLookUp("가져올 필드", "도메인(테이블·쿼리) 이름", "조건식") 형식으로 사용하며, 세 인수 모두 문자열이어야 한다. 따라서 필드 이름과 테이블 이름을 반드시 큰따옴표로 묶어야 하고, 따옴표를 빠뜨리면 식으로 인식되지 않는다.

폼 화면에는 도서코드·도서명·저자코드·저자명·출판사가 나열되어 있지만, 레코드 원본인 [도서] 테이블에는 저자명이 없고 [저자] 테이블에 들어 있다. 그러므로 가져올 필드는 "저자명", 찾아볼 도메인은 "저자"가 되고, 조건은 [저자] 테이블의 저자코드가 현재 레코드의 txt저자코드 값과 같아야 한다는 것이다.

저자코드가 텍스트 형식이므로 비교할 값을 작은따옴표로 감싸야 하며, 조건식은 "저자코드 = '" & [txt저자코드] & "'" 로 조립된다. 결국 컨트롤 원본은 =DLookUp("저자명", "저자", "저자코드 = '" & [txt저자코드] & "'") 가 된다. 가져올 필드와 테이블의 자리를 서로 바꿔 쓰면 존재하지 않는 대상을 찾게 되어 오류가 난다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.