72033번 질문 답변 좀 해주세요
8일에 올린 질문인데 2주가 넘도록 답변이 없네요.
너무 늦는거 아닌가요?
안녕하세요.
답변이 늦어서 죄송합니다. 중간이 제가 빠트리고 안달았네요. 아래 내용은 해당 질문의 답변입니다.
질문 1.
1-1 기본 모의고사 1회 문제3.3 / 풀이 p.291
If Fra확인란 = 1 Then
DoCmd.OpenReport "회원별사용현황", acViewPreview, , "[회원성명]=[forms]![스포츠클럽관리]![lst회원정보]"
Else
DoCmd.OpenReport "강사별사용현황", acViewPreview, , "강사코드=forms!스포츠클럽관리!lst강사정보"
End If
풀이에 보면 강사별사용현황 보고서의 강사코드 필드의 값과 스포츠클럽관리 폼의 lst강사정보 컨트롤에서 선택한
값이 같은 레코드만을 대상으로 하는 강사명사용현황 보고서를 인쇄 미리 보기 형태로 출력한다 고 되어있는데요.
강사별사용현황 보고서에는 강사코드 필드가 없는데, 어떻게 비교를 하는건가요?
-> 강사별사용현황 보고서의 레코드 원본으로 사용된 '보고서작성' 쿼리에는 강사코드가 있습니다. 다시 확인해 보세요.
1.2 기본 모의고사 2회 문제3.2 / 풀이 p.305
문제 : 현재 폼 데이터에 거래처코드와 행선지코드가 cmb거래처코드 와 cmb행선지코드 의 값과 동일한 레코드만을
표시
매크로의 where조건문에 아래와 같이 정답을 입력합니다.
[거래처코드]=[Forms]![운행관리]![cmb거래처코드] And [행선지코드]=[Forms]![운행관리]![cmb행선지코드]
운행관리 폼에 행선지코드는 없는데, 어떻게 비교를 하는건가요?
-> 운행관리 폼의 레코드 원본으로 사용된 운행관리 쿼리에는 행선지코드가 있습니다. 폼의 화면에는 표시되어 있지 않아도 해당 폼의 레코드 원본으로 지정된 테이블이나 쿼리에 있으면 비교가 가능합니다.
위 문제와도 관련해서 섹션 6의 조회식에서 조건 작성시에
폼 - 제품명찾기(레코드 원본 : 제품별판매현황 쿼리)
Me.Filter = "제품명='" & txt제품명 & "'"
Me.FilterOn = True
위 조건에서 등호 앞의 제품명은 제품별판매현황 쿼리의 필드명 이고
등호 뒤의 txt제품명은 제품명찾기 폼(현재 작업 중인)의 컨트롤 이름 으로 알고 있는데요.
섹션 6의 조회식이나, 이벤트 프로시저에서 Docmd를 이용하거나, 매크로에서 where 조건 지정시에
등호 뒤에 나오는 컨트롤명은 현재 작업 중인 개체의 컨트롤 명이라는건 알겠는데, 앞에 나오는 필드명은 어떤 기준에 의해서 정해야 하는지 헷갈립니다.
-> 해당 폼의 레코드 원본으로 지정된 테이블이나 쿼리에서 제품명과 관련된 필드를 확인하여 지정하면 됩니다. 대부분 문제에서 제품명이라고 명시했다면 레코드 원본으로 지정된 테이블이나 쿼리에 해당 필드가 반드시 있습니다.
질문 2. 기본 모의고사 1회 문제 4.1 / p.291
정답은 아래와 같지만
txt표시 = "회원명 : " & lst회원정보 & "(강사이름 : " & DLookup("강사이름", "회원관리현황", "회원성명=lst회원정보") & ")"
txt이용료평균 = lst회원정보 & " 회원의 이용료 평균 : " & DAvg("이용료", "회원관리현황", "회원성명=lst회원정보")
txt이용료최대값 = lst회원정보 & " 회원의 이용료 최대값 : " & DMax("이용료", "회원관리현황", "회원성명=lst회원정보")
제가 적은 답은 이렇습니다.
txt표시 = "회원명 : " & DLookup("회원성명", "회원관리현황", "회원성명=lst회원정보.column(1)") & "(강사이름 : " & DLookup("강사이름", "회원관리현황", "회원성명=lst회원정보.column(1)") & ")"
txt이용료평균 = DLookup("회원성명", "회원관리현황", "회원성명=lst회원정보.column(1)") & " 회원의 이용료 평균 : " & DAvg("이용료", "회원관리현황", "회원성명=lst회원정보.column(1)") & ")"
txt이용료최대값 = DLookup("회원성명", "회원관리현황", "회원성명=lst회원정보.column(1)") & " 회원의 이용료 최대값 : " & Dmax("이용료", "회원관리현황", "회원성명=lst회원정보.column(1)") & ")"
저는 lst회원정보에 회원성명이 저장된다는걸 간과하고 저렇게 작성을 하고 실행해보니 아래와 같은 에러메시지가 나옵니다
식의 'lst회원정보.column' 함수가 정의되지 않았습니다.
정답을 보고 이해를 하긴 했으나
회원성명이 두번째 열에 있으니 조건 지정시 lst회원정보.column(1)로 지정해도 되지 않나요?
-> dlookup 함수의 인수로는 column 속성을 인식하지 못해서 생긴 오류인듯 합니다.
질문 3. select문 작성시
어떤 경우는 select 다음에 바로 필드명을 입력하고, 필드명은 대괄호로 묶어주고
SELECT [회원코드], [회원성명], [최초등록일] FROM 회원;
어떤 경우는 select 다음에 바로 테이블명.필드명, 테이블명.필드명 이렇게 입력하면서 필드명을 대괄호로 묶어 주지 않는데 차이점이 뭔가요?
SELECT 브랜드.브랜드코드, 브랜드.브랜드명 FROM 브랜드;
-> 대괄호[]와 해당 필드가 있는 테이블명은 생략이 가능합니다. 즉, 두 경우 모두 사용할 수 있습니다.
질문 4. 기본 모의고사 1회 문제 4.1
매크로 작성시 출력 파일에 정답에 \가 표시되어 있습니다.
C:\길벗컴활1급\02 액세스\03 기본모의고사\거래처정보.rtf
키보드에
사선으로 왼쪽 위에서 오른쪽 아래로 내려가는 선과(키보드에 없어서 입력을 못하겠네요) \는 없는데 어떻게 입력해야하나요?
-> 역슬래쉬는 \와 같은 것으로 글꼴 모양에 따라 역슬래쉬로 표시되거나 \로 표시됩니다.
질문 5. 기본 모의고사 1회 문제 4.3
합계 필드의 조건난에 (select Max(합계) from 업체별내역) 이라고 입력하는데 합계는 필드명이니 대괄호로 [ ]
로 묶어줘야 하는거 아닌가요?
쿼리 작성할 때 필드명 그냥 입력하면 어떤 경우는 대괄호가 자동으로 생성되고, 어떤 경우는 큰따옴표가 자동으로 생성되는데 필드명 사용시에는 필히 대괄호로 묶어줘야 하는거 아닌가요? 큰따옴표가 생성되면 문자로 인식을 해서 에러가 나는것 같습니다만..
->테이블이나 필드명에 붙이는 대괄호는 생략이 가능합니다. 대괄호를 생략하면 큰따옴표가 표시되지는 않습니다. 해당 이름이 필드명이 맞는지 확인해 보시기 바랍니다.
질문 6. 기본 모의고사 3회 문제 3.1.2번
지역명 바닥글에 합계를 구할 시 txt순이익합계는 txt순이익합계=txt매출액합계-txt제조경비합계로 수식을 작성하라고 되어있습니다.
근데 3번 문제를 풀어서 본문의 순이익을 (= 매출액 - 제조경비) 수식을 작성해놓았다면
지역명 바닥글의 txt순이익합계의 수식을 =sum([txt순이익])으로 작성해도 되지 않나요?
txt순이익합계 컨트롤에
정답 : = [txt매출액합계]-[txt제조경비합계]
=sum([매출액]-[제조경비])로 입력해봐도 정답과 같은 숫자 나오고
=sum([txt순이익])으로 입력하면 txt순이익에 대한 매개 변수 값 입력하라는 메시지가 나옵니다.
보고서 바닥글의 평균 구할때도 =avg([txt순이익])을 해봐도 똑같이 매개 변수 값 입력하라는 메시지가 나오는데,
정답과 다르면 감점된다는 건 알지만
4번에서 iif함수의 인수로도 txt순이익을 사용했는데 왜 에러가 나오는건지 궁금해서요.
논리상으로는 =sum([txt순이익]), ==avg([txt순이익])도 맞는거 아닌지, 왜 매개 변수 값을 입력하라는거닞 궁금점이 생깁니다.
-> txt순이익의 값이 특정 필드가 아닌 수식인 '=[매출액]-[제조경비]'가 연결되어 있기 때문입니다. 즉, 수식 계산이 이뤄진 다음 또 다시 계산을 해서 안된다고 보시면 됩니다.
질문 7. 쿼리 작성
쿼리 작성 시 쿼리 도구 → 디자인 → 쿼리 유형 선택해서 작성할 경우
하단 그리드 라인에 필드를 끌어다 놓기 전에 선택해되 되는지?
아니면 하단 그리드 라인을 다 완성한 후에 마지막에 선택해도 되나요?
-> 어떻게 하든 최종적으로 만들어진 것이 문제에서 요구된 대로 되었다면 상관 없습니다.
즐거운 하루 되세요.
-
*2017-03-02 09:57:02
안녕하세요.
답변이 늦어서 죄송합니다. 중간이 제가 빠트리고 안달았네요. 아래 내용은 해당 질문의 답변입니다.
질문 1.
1-1 기본 모의고사 1회 문제3.3 / 풀이 p.291
If Fra확인란 = 1 Then
DoCmd.OpenReport "회원별사용현황", acViewPreview, , "[회원성명]=[forms]![스포츠클럽관리]![lst회원정보]"
Else
DoCmd.OpenReport "강사별사용현황", acViewPreview, , "강사코드=forms!스포츠클럽관리!lst강사정보"
End If풀이에 보면 강사별사용현황 보고서의 강사코드 필드의 값과 스포츠클럽관리 폼의 lst강사정보 컨트롤에서 선택한
값이 같은 레코드만을 대상으로 하는 강사명사용현황 보고서를 인쇄 미리 보기 형태로 출력한다 고 되어있는데요.
강사별사용현황 보고서에는 강사코드 필드가 없는데, 어떻게 비교를 하는건가요?
-> 강사별사용현황 보고서의 레코드 원본으로 사용된 '보고서작성' 쿼리에는 강사코드가 있습니다. 다시 확인해 보세요.
1.2 기본 모의고사 2회 문제3.2 / 풀이 p.305
문제 : 현재 폼 데이터에 거래처코드와 행선지코드가 cmb거래처코드 와 cmb행선지코드 의 값과 동일한 레코드만을
표시
매크로의 where조건문에 아래와 같이 정답을 입력합니다.
[거래처코드]=[Forms]![운행관리]![cmb거래처코드] And [행선지코드]=[Forms]![운행관리]![cmb행선지코드]
운행관리 폼에 행선지코드는 없는데, 어떻게 비교를 하는건가요?
-> 운행관리 폼의 레코드 원본으로 사용된 운행관리 쿼리에는 행선지코드가 있습니다. 폼의 화면에는 표시되어 있지 않아도 해당 폼의 레코드 원본으로 지정된 테이블이나 쿼리에 있으면 비교가 가능합니다.
위 문제와도 관련해서 섹션 6의 조회식에서 조건 작성시에
폼 - 제품명찾기(레코드 원본 : 제품별판매현황 쿼리)
Me.Filter = "제품명='" & txt제품명 & "'"
Me.FilterOn = True위 조건에서 등호 앞의 제품명은 제품별판매현황 쿼리의 필드명 이고
등호 뒤의 txt제품명은 제품명찾기 폼(현재 작업 중인)의 컨트롤 이름 으로 알고 있는데요.
섹션 6의 조회식이나, 이벤트 프로시저에서 Docmd를 이용하거나, 매크로에서 where 조건 지정시에
등호 뒤에 나오는 컨트롤명은 현재 작업 중인 개체의 컨트롤 명이라는건 알겠는데, 앞에 나오는 필드명은 어떤 기준에 의해서 정해야 하는지 헷갈립니다.
-> 해당 폼의 레코드 원본으로 지정된 테이블이나 쿼리에서 제품명과 관련된 필드를 확인하여 지정하면 됩니다. 대부분 문제에서 제품명이라고 명시했다면 레코드 원본으로 지정된 테이블이나 쿼리에 해당 필드가 반드시 있습니다.
질문 2. 기본 모의고사 1회 문제 4.1 / p.291
정답은 아래와 같지만
txt표시 = "회원명 : " & lst회원정보 & "(강사이름 : " & DLookup("강사이름", "회원관리현황", "회원성명=lst회원정보") & ")"
txt이용료평균 = lst회원정보 & " 회원의 이용료 평균 : " & DAvg("이용료", "회원관리현황", "회원성명=lst회원정보")
txt이용료최대값 = lst회원정보 & " 회원의 이용료 최대값 : " & DMax("이용료", "회원관리현황", "회원성명=lst회원정보")제가 적은 답은 이렇습니다.
txt표시 = "회원명 : " & DLookup("회원성명", "회원관리현황", "회원성명=lst회원정보.column(1)") & "(강사이름 : " & DLookup("강사이름", "회원관리현황", "회원성명=lst회원정보.column(1)") & ")"
txt이용료평균 = DLookup("회원성명", "회원관리현황", "회원성명=lst회원정보.column(1)") & " 회원의 이용료 평균 : " & DAvg("이용료", "회원관리현황", "회원성명=lst회원정보.column(1)") & ")"
txt이용료최대값 = DLookup("회원성명", "회원관리현황", "회원성명=lst회원정보.column(1)") & " 회원의 이용료 최대값 : " & Dmax("이용료", "회원관리현황", "회원성명=lst회원정보.column(1)") & ")"저는 lst회원정보에 회원성명이 저장된다는걸 간과하고 저렇게 작성을 하고 실행해보니 아래와 같은 에러메시지가 나옵니다
식의 'lst회원정보.column' 함수가 정의되지 않았습니다.
정답을 보고 이해를 하긴 했으나
회원성명이 두번째 열에 있으니 조건 지정시 lst회원정보.column(1)로 지정해도 되지 않나요?
-> dlookup 함수의 인수로는 column 속성을 인식하지 못해서 생긴 오류인듯 합니다.
질문 3. select문 작성시
어떤 경우는 select 다음에 바로 필드명을 입력하고, 필드명은 대괄호로 묶어주고
SELECT [회원코드], [회원성명], [최초등록일] FROM 회원;
어떤 경우는 select 다음에 바로 테이블명.필드명, 테이블명.필드명 이렇게 입력하면서 필드명을 대괄호로 묶어 주지 않는데 차이점이 뭔가요?
SELECT 브랜드.브랜드코드, 브랜드.브랜드명 FROM 브랜드;
-> 대괄호[]와 해당 필드가 있는 테이블명은 생략이 가능합니다. 즉, 두 경우 모두 사용할 수 있습니다.
질문 4. 기본 모의고사 1회 문제 4.1
매크로 작성시 출력 파일에 정답에 \가 표시되어 있습니다.
C:\길벗컴활1급\02 액세스\03 기본모의고사\거래처정보.rtf
키보드에
사선으로 왼쪽 위에서 오른쪽 아래로 내려가는 선과(키보드에 없어서 입력을 못하겠네요) \는 없는데 어떻게 입력해야하나요?
-> 역슬래쉬는 \와 같은 것으로 글꼴 모양에 따라 역슬래쉬로 표시되거나 \로 표시됩니다.
질문 5. 기본 모의고사 1회 문제 4.3
합계 필드의 조건난에 (select Max(합계) from 업체별내역) 이라고 입력하는데 합계는 필드명이니 대괄호로 [ ]
로 묶어줘야 하는거 아닌가요?
쿼리 작성할 때 필드명 그냥 입력하면 어떤 경우는 대괄호가 자동으로 생성되고, 어떤 경우는 큰따옴표가 자동으로 생성되는데 필드명 사용시에는 필히 대괄호로 묶어줘야 하는거 아닌가요? 큰따옴표가 생성되면 문자로 인식을 해서 에러가 나는것 같습니다만..
->테이블이나 필드명에 붙이는 대괄호는 생략이 가능합니다. 대괄호를 생략하면 큰따옴표가 표시되지는 않습니다. 해당 이름이 필드명이 맞는지 확인해 보시기 바랍니다.
질문 6. 기본 모의고사 3회 문제 3.1.2번
지역명 바닥글에 합계를 구할 시 txt순이익합계는 txt순이익합계=txt매출액합계-txt제조경비합계로 수식을 작성하라고 되어있습니다.
근데 3번 문제를 풀어서 본문의 순이익을 (= 매출액 - 제조경비) 수식을 작성해놓았다면
지역명 바닥글의 txt순이익합계의 수식을 =sum([txt순이익])으로 작성해도 되지 않나요?
txt순이익합계 컨트롤에
정답 : = [txt매출액합계]-[txt제조경비합계]
=sum([매출액]-[제조경비])로 입력해봐도 정답과 같은 숫자 나오고
=sum([txt순이익])으로 입력하면 txt순이익에 대한 매개 변수 값 입력하라는 메시지가 나옵니다.
보고서 바닥글의 평균 구할때도 =avg([txt순이익])을 해봐도 똑같이 매개 변수 값 입력하라는 메시지가 나오는데,
정답과 다르면 감점된다는 건 알지만
4번에서 iif함수의 인수로도 txt순이익을 사용했는데 왜 에러가 나오는건지 궁금해서요.
논리상으로는 =sum([txt순이익]), ==avg([txt순이익])도 맞는거 아닌지, 왜 매개 변수 값을 입력하라는거닞 궁금점이 생깁니다.
-> txt순이익의 값이 특정 필드가 아닌 수식인 '=[매출액]-[제조경비]'가 연결되어 있기 때문입니다. 즉, 수식 계산이 이뤄진 다음 또 다시 계산을 해서 안된다고 보시면 됩니다.
질문 7. 쿼리 작성
쿼리 작성 시 쿼리 도구 → 디자인 → 쿼리 유형 선택해서 작성할 경우
하단 그리드 라인에 필드를 끌어다 놓기 전에 선택해되 되는지?
아니면 하단 그리드 라인을 다 완성한 후에 마지막에 선택해도 되나요?
-> 어떻게 하든 최종적으로 만들어진 것이 문제에서 요구된 대로 되었다면 상관 없습니다.
즐거운 하루 되세요.