안녕하세요. 오늘 컴활 1급 실기를 치고 왔는데, 떨어진 것 같습니다.
이유는 두 가지인데요,
첫째는 매크로와 쿼리에서 모두 입력한 이름을 포함하는 값을 반환하는 값을 구하라고 나왔기 때문이고,
둘째는 크로스탭 쿼리에서 목록을 묶는 방법을 잘 모르겠습니다.
첫번째 질문입니다.
1-1 ) (해결하였습니다.)
[회사재무정보] 폼에, [txt회사이름]과 그 옆에 [cmb회사조회]라는 컨트롤이 있습니다.
그리고 [재무정보통계] 보고서에서 "회사코드", "회사이름", "수익" 등의 필드가 있습니다.
[cmb회사조회] 컨트롤을 클릭하면 [재무정보통계]보고서를 '인쇄 미리 보기'를 여는 매크로를 만들 때,
조건은 txt회사이름에 입력한 내용이 회사이름 필드에 있는 회사들의 정보를 모두 반환해야합니다.
가령 txt회사이름에 '제약'이 입력되고 'cmb회사조회'를 클릭했을 때
보고서에서는 '하나제약' '컴활건설' '제약엘리트' '눈앤생명' '한화제약우' 중에서 '하나제약' '제약엘리트' '한화제약우' 의 정보를 모두 반환해야 합니다.
매크로 openreport에서 인쇄 미리 보기를 선택한 후
where = 회사이름 = [forms]![회사재무정보]![txt회사이름] 을 할 경우
정확히 이름을 입력해야만 반환이 되더라구요. 그래서 Like 등을 써 봤는데, 이름의 일부만 입력했을때 일치하는 것들을 어떻게 쓰는지 잘 모르겠습니다.
-> where = [회사이름] like "*" [forms]![회사재무정보]![txt회사이름] "*"
1-2. (해결하였습니다.)
마찬가지로 쿼리에서도 매개 변수 쿼리에서 문제가 있습니다.
어떤 조건을 지정하여 쿼리를 필터링합니다.
이때 '회사명' 필드의 '조건' 항목에 [회사명의 일부를 입력하세요] 라는 매개 변수를 입력하여 실행을 시켰을 때,
위와 마찬가지로 회사명의 일부만 입력하면 그 일부를 포함하는 회사명을 전부 조회해야 합니다.
이 경우 어떻게 만들면 좋을까요? SELECT 등을 사용해야 하나요? 그런 말은 없었어요.
-> like "*" [일부를 입력하십시오] "*" 라고 하면 되네요. (해결하였습니다.)
2. 크로스탭 쿼리를 만들었을 때 질문입니다. 행 레이블에 표시하는 값은 회사명에서 추출한 '회사구분'인데요,
[A 건설] [B 건설] [C 제약] [D 생명] [E 생명] [F보험] 등등일 때 뒤쪽 두 단어가 회사구분입니다.
이때 크로스탭 쿼리를 만든 다음 디자인 수정에서 필드 명에 [ 회사구분 : TRIM(RIGHT(회사명,2)) ] 라고 입력하고 묶음 처리(요약) 하면
크로스탭 쿼리의 열에 나오는 것은 '상장구분'이고 열 필드에는 [유가증권]과 [코스닥]이 있으며,
크로스탭 쿼리의 값에 계산하는 것은 유가증권인 회사와 코스닥인 회사의 순수익의 평균입니다.
다만 회사별이 아니라 회사구분별 평균입니다.
<회사구분> <유가증권> <코스닥>
건설
건설
제약
생명
생명
보험
이렇게 6줄이 나오는데, 저는 건설, 생명과 같이 서로 다른 회사이지만 하나의 구분을 묶어서 구분별 순수익의 평균을 구해야 합니다.
<회사구분> <유가증권> <코스닥>
건설
제약
생명
보험
이렇게 4개만 나오도록 묶음 처리 하고 싶은데 조건이나 식으로는 작성을 할 수 없습니다.
안녕하세요.
- 매크로 문제의 경우 226쪽 문제2번과 유사하니 해당 문제를 풀어보시기 바랍니다. .OpenForm을 OpenReport로만 지정하면 됩니다.
- [ 회사구분 : TRIM(RIGHT(회사명,2)) ] 이 필드의 조건 부분에 "건설" or "제약" or "생명" or "보험"을 지정하면 됩니다.
즐거운 하루 되세요.
-
관리자2021-02-01 09:21:14
안녕하세요.
- 매크로 문제의 경우 226쪽 문제2번과 유사하니 해당 문제를 풀어보시기 바랍니다. .OpenForm을 OpenReport로만 지정하면 됩니다.
- [ 회사구분 : TRIM(RIGHT(회사명,2)) ] 이 필드의 조건 부분에 "건설" or "제약" or "생명" or "보험"을 지정하면 됩니다.
즐거운 하루 되세요.