(부록 p.224 참고)
2016-1회-액세스 문제2-2에서는
'환자관리' 폼의 하위 폼 본문이 'txt서비스명' 컨트롤에 서비스명이 표시되도록 구현하시오
dlookup함수 이용
폼화면에는 '서비스코드'가 표시되어 있지 않음
해설을 참고하여 생각해보면
1. txt서비스명에 서비스명이 표시되어야 하므로, 테이블이나 쿼리에서 서비스명 필드를 가진 개체를 찾습니다.
<서비스>, <신청자현황> 테이블과 <서비스신청현황>쿼리가 존재합니다.
이 중에서도 현재폼과 관련된 서비스명이 나타나야하므로
현재폼이 가진 필드를 가진 테이블/쿼리를 선택해야 합니다.
해설에서는 <서비스신청현황> 쿼리를 선택하여 공동의 필드로 환자코드를 선택하였는데요
<신청자현황>테이블을 선택하여 공동의 필드로 환자명을 써도 괜찮지 않나요?
2. 이어지는 질문으로 컨트롤 원본에 쓰는 방식을 질문드립니다.
이전의 문제들은 "상품코드=txt상품코드" 이런식인데요, (해당 테이블/쿼리의)필드명과 현재 폼의 컨트롤 비교
=dlookup("서비스명", "서비스신청현황", "[서비스신청현황]![환자코드]=forms![환자관리]![환자코드])
여기에서 왜 []을 쓰는 건가요?
서비스신청현황 쿼리에서 환자코드필드와 현재폼의 레코드원본의 필드인 환자코드를 비교하기 떄문인가요?
그럼 환자코드 = forms![환자관리]![환자코드] 이렇게 써도 무관하죠?
그리고 forms![환자관리]![환자코드]여기서 왜 forms에는 [] 안해주나요?
★ 성실한 답변부탁드립니다(물론 질문들이 넘쳐나 바쁘시겠지만,,,,이전 질문드린 내용에서는 질문 중 몇개만 답해주신다거나 '결과만 같다면 상관없습니다.' 이런 답변을 받았는데 도움이 되지 않더라구요. 제대로 제가 이해하고 있는지 혹은 왜 그런지가 알고 싶어서 질문드립니다.) ★
안녕하세요.
1. 님의 말씀대로 아래와 같이 작성해도 됩니다.
=DLookUp("서비스명","신청자현황","Forms![환자관리]![환자명]=[신청자현황]![환자명]")
2. =dlookup("서비스명", "서비스신청현황", "[서비스신청현황]![환자코드]=forms![환자관리]![환자코드])
여기에서 왜 []을 쓰는 건가요?
서비스신청현황 쿼리에서 환자코드필드와 현재폼의 레코드원본의 필드인 환자코드를 비교하기 떄문인가요?
-> 일반적으로 컨트롤의 위치를 지정할때 []를 지정하는데요. 생략이 가능합니다.
그럼 환자코드 = forms![환자관리]![환자코드] 이렇게 써도 무관하죠?
-> 일반적으로 해당 컨트롤이 있는 폼의 레코드 원본에 있는 값과 비교할 때는 테이블 혹은 쿼리이름을 생략해도 되지만 이 문제의 경우는 그렇지 않기때문에 쿼리명을 지정해야 합니다.
그리고 forms![환자관리]![환자코드]여기서 왜 forms에는 [] 안해주나요?
-> 해도 상관 없습니다.
즐거운 하루 되세요.
-
*2017-05-31 09:23:10
안녕하세요.
1. 님의 말씀대로 아래와 같이 작성해도 됩니다.
=DLookUp("서비스명","신청자현황","Forms![환자관리]![환자명]=[신청자현황]![환자명]")
2. =dlookup("서비스명", "서비스신청현황", "[서비스신청현황]![환자코드]=forms![환자관리]![환자코드])
여기에서 왜 []을 쓰는 건가요?
서비스신청현황 쿼리에서 환자코드필드와 현재폼의 레코드원본의 필드인 환자코드를 비교하기 떄문인가요?
-> 일반적으로 컨트롤의 위치를 지정할때 []를 지정하는데요. 생략이 가능합니다.
그럼 환자코드 = forms![환자관리]![환자코드] 이렇게 써도 무관하죠?
-> 일반적으로 해당 컨트롤이 있는 폼의 레코드 원본에 있는 값과 비교할 때는 테이블 혹은 쿼리이름을 생략해도 되지만 이 문제의 경우는 그렇지 않기때문에 쿼리명을 지정해야 합니다.
그리고 forms![환자관리]![환자코드]여기서 왜 forms에는 [] 안해주나요?
-> 해도 상관 없습니다.
즐거운 하루 되세요.