별의 공부 블로그 🧑🏻‍💻
728x90
728x170

액세스 과목 시험 대비

영역별 점수

작업 유형 배점 출제 항목 배점 출제 형태 세부 출제 내역
DB 구축
: 테이블, 데이터 가져오기

30 테이블 완성 20 4점 x 5 - 기본키 작성
- 유효성 검사 텍스트
- 기본값 지정
- 필드 크기 지정
- 형식 지정
- 필드 추가 · 제거
- 필수 입력 지정
- 데이터 형식 지정
- 유효성 검사 규칙
- 색인 설정
- 입력 마스크 설정
- 테이블 속성
- 입력 모드 설정
- 빈 문자열 허용
- 캡션 지정

데이터 생성 5 5점 x 1 - 액셀 파일 연결하기
- HTML 파일 연결하기
- 텍스트 파일 가져오기
- 액셀 파일 가져오기
- 테이블 추가 쿼리
- 테이블에 엑셀 파일 추가하기
관계 5 5점 x 1 - 관계 설정
- 업데이트 여부 설정
- 참조 무결성 여부 설정
- 모두 삭제 여부 설정
필드의 조회 속성 5 5점 x 1 콤보 상자 설정
- 행 원본 지정
- 목록 너비 지정
- 바운드 열 지정
- 목록값만 허용 여부
- 열 너비 지정
- 열 이름 지정
목록 상자 설정
- 행 원본 지정
- 목록 너비 지정
- 바운드 열 지정
- 열 너비 지정
- 열 이름 지정

4가지 출제 항목을 조합하여 4점 x 5문제, 5점 x 2문제 출제
입력 및 수정
: 폼
25 폼 완성 15 3점 x 5 - 레코드 원본 지정
- 레코드 원본에 필드 추가
- 기본 보기
- 컨트롤 원본 지정
- 탭 순서 지정
- 탐색 단추 설정
- 텍스트 맞춤 설정
- 구분선 설정
- 화면 표시 여부 설정
- 추가/삭제 여부 설정
- 스타일 설정
- 최소화/최대화 설정
- 스크롤바 설정
- 잠금 여부 설정
- 레코드 선택기 설정
- 컨트롤 생성/이동
- 컨트롤 순서 변경
- 탭 정지 여부 지정
- 컨트롤 팁 텍스트 지정
- 배경색 설정
- 컨트롤 정렬
- 탭 정지 여부 지정
- 컨트롤 기본값 속성 지정
- 조건부 서식
- 소문자/대문자로 표시
- 팝업 설정
- 모달 설정
- 그림 삽입
- 정렬 기준 지정
- 컨트롤 형식 속성 지정
매크로 함수 5 5점 x 1 - OpenForm
- OpenReport
- RunCommand
- ShowAllRecords
- MessageBox
- CloseWindow
콤보 상자 설정 5 5점 x 1 - 행 원본 지정
- 열 너비 지정
- 목록값만 허용 여부
- 바운드 열 지정
하위 폼 추가하기 5 5점 x 1 - 컨트롤 추가
- 사용할 테이블/쿼리 지정
- 연결할 필드 설정
- 하위 폼 속성 지정
4가지 출제 항목을 조합하여 3점 x 5문제, 5점 x 2문제 출제
조회 및 출력
: 보고서 출력
20 보고서 완성 15 3점 x 5 - 정렬 및 그룹 지정
- 레코드 원본 지정
- 컨트롤 원본 지정
- 중복 내용 숨기기
- 컨트롤 속성 지정
- 테두리 스타일 지정
- 바운드 열 지정
- 누계 지정
- 반복 실행 구역 설정
- 용지 방향 지정
- 페이지 바꿈 지정
- 컨트롤 추가하기
- 조건부 서식
- 형식 지정
- 컨트롤 표시 속성 지정
이벤트 프로시저 5 5점 x 1 - Me.RecordSource
- DoCmd.OpenForm
- DoCmd.OpenQuery
- Me.Filter
- Me.RecordsetClone.FindFirst
- DoCmd.OpenReport
- 폼 컨트롤의 값 표시하기
- MsgBox, Time, Month, Datevalue
- ADO 개체
- DoCmd.GoToRecord
- Unload Me
- 새 래코드 추가
- iif, Switch
- 학점 계산
- 근무 월 수 계산
- 직무 등급 계산
- 금액 계산
- MsgBox
- Right
- Mid
- Mod
처리 기능
: 쿼리
25 쿼리 4 4점 x 1 - 일반 선택 쿼리
21 7점 x 3 - 크로스탭 쿼리
- 매개변수 쿼리
- 그룹 지정 쿼리
- 테이블 만들기 쿼리
- 불일치 검색 쿼리
- 삭제 쿼리
- 삽입 쿼리
- 업데이트 쿼리
- 중복 데이터 검색 쿼리










쿼리 작성 시 사용되는 속성 및 함수
- Distinct
- Top
- & 연산자
- Date
- Datediff
- Weekday
- In 연산자
- IIF
- Switch
- IsNull
- Mod
- Choose
- Dsum
- Right
- Left
- Mid
- Instr

 

● 문제 풀이 순서

  • DB 구축 (30)
    • 테이블 완성 (20)
    • 데이터 생성 (5)
    • 관계 (5)
    • 필드의 조회 속성 (5)
  • 처리 기능 (25)
    • 일반 선택 쿼리 (4)
    • 기타 쿼리 (21)
  • 입력 및 수정 (25)
    • 폼 완성 (15)
    • 매크로 함수 (5)
    • 콤보 상자 설정 (5)
    • 하위 폼 추가하기 (5)
  • 조회 및 출력 (20) 
    • 보고서 완성 (15)
    • 이벤트 프로시저 (5)

 

 

● DB 구축 : 유효성 검사 규칙

예제
  • '주야구분' 필드에는 '주간' 또는 '야간'만 입력되도록 설정하시오.
    • In ("주간", "야간")
  • 이메일 필드에는 '@'가 반드시 들어가도록
    • *@*
  • 필드의 두 번째 자리엔 꼭 'a'가 들어가도록
    • "?"a"*"
  • '주문코드' 필드에는 0~10까지 숫자만 입력되도록
    • Between 0 And 10
  • '주문코드' 필드에는 공백이 입력되지 않도록
    • InStr([주문필드], "") = 0
  • 담당교수 필드에 "만"을 포함할 때
    • InStr([담당교수], "만") >= 1
  • '주민등록번호' 필드의 7번째 자리에 입력되는 '-' 이후에 반드시 7자리가 입력되도록
    • Len([주민등록번호]) - InStr([주민등록번호], "") = 7
  • '전화번호' 필드값에는 반드시 '-' 문자를 포함하도록
    • *-*
  • '생년월일' 필드에는 2018년 이후 출생자만 입력되도록 하고, 다른 값 입력시 "메시지" 표시
    • 유효성 검사 규칙 : >= # 2018-1-1 #
    • 유효성 텍스트 : 메시지
  • '구매금액' 필드에는 "구매수량"과 "단가"를 곱한 값만 입력되도록
    • 다른 필드를 끌고올 때는 식을 테이블 자체 속성에 입력
      •   
        오른쪽의 속성 시트 창의 "유효성 검사 규칙"에 입력한다.
    • [구매금액] = [구매수량] * [단가]
  • '종료일자' 필드는 '시험일자' 필드보다 크거나 같은 날짜만이 입력 가능하도록
    • 테이블 자체 속성에 입력
    • [종료일자] >= [시험일자]
  • '기대치' 필드는 평점 필드의 10% 이상의 값이 넣어지지 못하도록
    • 기대치 필드의 속성이 아닌, 테이블 전체 속성에 입력
    • [기대치] < [평점] * 1.1
  • 0이 아닌 값 입력
    • <> 0
  • 0 또는 100 이상인 값 입력
    • 0 Or >= 100
  • 1부터 99까지의 숫자만 입력
    • 1 >= And <= 99
  • 반드시 'A-'로 시작하는 5개의 문자 입력
    • Like "A-???"
  • 'A', 'B', 'C' 중 에서 입력
    • In ("A", "B", "C")
  • '고객코드'는 반드시 6글자로 입력
    • Len([고객코드]) = 6
  • '전화번호' 필드 값에는 반드시 "-" 문자를 포함
    • Like "*-*"

 

 

● DB 구축 : 입력 마스크

개념
더보기
입력 마스크 사용자 지정 형식
0000-0000 ; 0 ; x
   

 사용자 지정 기호를 사용하여 입력 마스크를 지정함.

② 데이터를 입력할 때 -, /, =와 같은 서식 문자의 테이블 저장 여부를 지정함.

  • 0 : 입력 마스크 문자를 포함하여 저장
  • 1 이나 공백 : 입력된 데이터만 저장

 데이터를 입력할 때, 데이터가 입력될 자리에 표시할 문자를 지정함.

 

입력 마스크 대치 문자
  • 입력 마스크 : 데이터의 입력 형식을 정의하여 사용자가 오류 없이 정확하게 입력할 수 있도록 하는 속성
  • 입력 마스크에서 사용되는 사용자 지정 기호
기호 설명
0 필수 요소
0에서 9까지의 숫자를 입력
덧셈과 뺄셈 기호 사용 불가
9 선택 요소
숫자 공백 입력
덧셈과 뺄셈 기호 사용 불가
# 선택 요소
숫자 공백 입력
덧셈과 뺄셈 기호 사용 가능
L 필수 요소
A에서 Z까지의 영문자 한글 입력
? 선택 요소
A에서 Z까지의 영문자 한글 입력
A 필수 요소
A에서 Z까지의 영문자 숫자, 한글 입력
a 선택 요소
A에서 Z까지의 영문자 숫자, 한글 입력
& 필수 요소
모든 문자 공백 입력 가능
C 선택 요소
모든 문자 공백 입력 가능
. , : ; - / 소수 자릿수와 1000 단위, 날짜, 시간 구분 기호로 입력
< 모든 문자를 소문자로 변환
> 모든 문자를 대문자로 변환
\ 뒤에 나오는 문자를 그대로 표시함.
예) \A : A만 표시됨.

 

 

예제
  • '연락처' 필드에는 '123-4567' 형식으로 입력되도록 다음과 같이 필드 속성의 입력 마스크를 설정하시오.
    • ▶ 앞의 3글자와 뒤의 4글자는 숫자로 입력받되, # 기호를 이용할 것
    • ▶ 입력 시 데이터가 입력될 자리를 '#'으로 표시
###-####; ;#

 

  • '연락처' 필드에는 '703-4873' 형식으로 입력하도록 다음과 같이 입력 마스크를 설정하시오.
    • ▶ 앞의 세 글자, 뒤의 네 글자는 숫자로 입력받되 반드시 입력되도록 설정
    • '-'도 입력 데이터와 같이 저장되고, 입력 시 데이터 입력 자리에 '*'가 표시되도록 설정하시오.
000-0000;0;*

 

  • '전화번호' 필드에는 입력 시 '123-5678(서울)'과 같은 형식으로 입력되도록 입력 마스크를 다음과 같이 설정하시오.
    • ▶ 7자리 숫자를 모두 입력받되 숫자를 반드시 입력받도록 할 것
000-0000"(서울)"

 

  • '주민번호' 필드는 다음과 같은 형식으로 입력되고 저장되도록 입력 마스크를 설정하시오.
    • ▶ 표시 예 : 760516-2232529
000000\-0000000;0;_

\ : '\'자 뒤에 나오는 문자(-)를 그대로 표시하라는 의미

0 : 데이터를 입력할 때 '-', '/', '=' 등과 같은 문자를 테이블에 저장할지의 여부 지정 (0 : 입력한 값과 함께 문자 저장, 1이나 생략 : 값만 저장)

_ : 값을 입력할 때 문자가 입력되어야 할 자리에 표시되는 문자

 

 

● DB 구축 : 형식

개념
더보기
'형식' 속성의 사용자 지정 기호
형식 기호 설명
숫자/통화 .(마침표) 소수 구분 기호 표시
,(쉼표) 천 단위 구분 기호 표시
0 숫자 한 자리를 표시하되, 값이 없을 경우 0 표시
# 숫자 한 자리를 표시하되, 값이 없을 경우 아무 것도 표시하지 않음.
$ $를 표시
% 값에 100을 곱하고 % 기호를 추가
E- 또는 e- 지수 표기법으로 음의 지수 뒤에는 빼기 기호(-)를 붙이고, 양의 지수 뒤에는 아무 기호도 붙이지 않음.
E+ 또는 e+ 지수 표기법으로서 음의 지수 뒤에는 빼기 기호(-)를, 양의 지수 뒤에는 더하기 기호(+)를 붙임.
날짜/시간 d - d : 필요에 따라 한 자리 또는 두 자리 숫자로, 1~31까지의 일을 표시
- dd : 01~31까지 두자리 숫자로 일을 표시
- ddd : sun~sat까지 요일의 처음 세 자리를 표시
- dddd : Sunday~Saturday까지 완전한 요일 이름 표시
- ddddd : 미리 정의된 간단한 날짜 형식으로 표시
- dddddd : 미리 정의된 자세한 날짜 형식으로 표시
w - w : 일주일을 1~7로 나누어 몇 번째 요일인지를 표시
- ww : 1년을 1~53까지 나누어 몇 번째 주인지를 표시
m - m : 필요에 따라 한 자리 또는 두 자리 숫자로 1~12까지의 월을 표시
- mm : 01~12까지 두 자리 숫자로 월을 표시
- mmm : Jan~Dec까지 월의 처음 세 자리를 표시
- mmmm : January에서 December까지 완전한 월 이름을 표시
a - aaa : 요일을 '일'~'토'의 형태로 표시
- aaaa : 요일을 '일요일~토요일' 형태로 표시
q 날짜를 1~4까지의 분기로 표시 (quarter)
y - y : 1년 중의 일을 표시(1~366)
- yy : 연도의 마지막 두 자리를 표시
- yyyy : 연도를 네 자리 숫자로 표시
h - h : 한 자리 또는 두 자리 숫자로 0~23까지 시간을 표시
- hh : 두 자리 숫자로 00~23까지 시간을 표시
n - n : 한 자리 또는 두 자리 숫자로 0~59까지의 분을 표시
- nn : 두 자리 숫자로 00~59까지 분을 표시
s - s : 한 자리 또는 두 자리 숫자로 0~59까지 초를 표시
- ss : 두 자리 숫자로 00~59까지 초를 표시
AM/PM - AM/PM : 대문자 AM이나 PM을 포함한 12시간제로 표시
- am/pm : 소문자 am이나 pm을 포함한 12시간제로 표시
- A/P : 대문자 A나 P를 포함한 12시간제로 표시
- a/p : 소문자 a나 p를 포함한 12시간제로 표시
텍스트/메모
형식
@ 문자 데이터의 표시 위치 지정
* * 기호 다음에 있는 특정 문자를 표시할 수 있는 너비만큼 반복하여 채움.

 

 

 

예제
  • '출발일자' 필드의 데이터 형식을 날짜/시간 형식으로 변경하고, '11, Sun' 형식으로 표시하도록 설정하시오. (표시 예 : 2020-06-03 → 06, Wed)
    • 형식 : mm, ddd
      • 입력할 경우, 자동으로 mm", "ddd 로 바뀜.

 

  • 새로운 레코드가 추가되는 경우 '탑승횟수' 필드에는 기본적으로 1이 입력되고, 왼쪽으로 정렬되어 표시되도록 설정하시오.
    • 기본값 : 1 
    • 형식 : !

 

  • '회원등급' 다음에 '비고' 필드를 추가한 후, 텍스트가 255자리까지만 입력되도록 데이터 형식을 설정하시오.
    • 데이터 형식 : 짧은 텍스트

 

 

● DB 구축 : 데이터 형식

예제
  • '약도이미지' 필드를 '연락처' 필드의 뒤에 추가하고, 이미지를 삽입할 수 있도록 데이터 형식을 설정하시오.
    • 데이터 형식 : OLE 개체

 

 

● DB 구축 : 관계

예제
  • <하행열차판매> 테이블의 '구간'은 <고속열차> 테이블의 '구간'을 참조하며 두 테이블 간의 관계는 M:1 이다. 두 테이블에 관해 다음과 같은 관계를 설정하시오.
    • ▶ 관계 설정 시 필요한 기본키를 설정하시오.
      • <고속열차> 테이블의 '구간' 필드를 기본키로 설정한다.
        • 참조 받는 테이블의 필드를 기본키로 설정한다.
          • <하행열차판매> '구간' 필드  <고속열차> '구간' 필드

 

  • <사원정보> 테이블의 '부서코드'는 <부서> 테이블의 '부서코드'를 참조하며 두 테이블 간의 관계는 M:1이다. 두 테이블에 대해 다음과 같은 관계를 설정하시오.
    • ▶ 두 테이블 간에 관계를 설정하면 다음과 같은 오류가 발생한다. 삭제 쿼리를 작성하여 이를 해결한 후 항상 참조 무결성을 유지하도록 설정하시오. 삭제 쿼리의 이름은 '삭제'로 지정하시오.
      •  
    • <부서> 테이블의 '부서코드' 필드가 변경되면 이를 참조하는 <사원정보> 테이블의 '부서코드' 필드도 따라 변경되도록 설정하시오.

 

<부서> 테이블 <사원정보> 테이블

'삭제' 쿼리 : '사원정보' 테이블에서 '부서' 테이블의 '부서코드'가 아닌 필드를 삭제한다.
'삭제' 쿼리를 실행한 후, 관계를 설정해준다.

 

 

● 입력 및 수정 : 폼 완성

예제
  • 폼의 크기를 조정할 수 없도록 <그림>과 같이 설정하시오.
    • 폼의 크기를 조정할 수 없도록 설정하기
      • 속성 [형식] 탭의 "테두리 스타일"
        • 가늘게 : 최소화, 최대화 단추가 표시되어 있을 경우
        • 대화상자 : 최소화, 최대화 단추가 표시되어 있지 않을 경우

 

  • 폼 바닥글의 'txt최대점수' 컨트롤에 '직위'가 "사원"인 사원 중 '승진시험점수'가 가장 높은 점수를 표시하시오.
    • "컨트롤 원본" : =DMax("승진시험점수","사원정보","직위='사원'")
      • "사원정보" : 속성의 [데이터] 탭에서 "레코드 원본" 속성을 통해 확인할 수 있음.

 

  • 폼의 홀수와 짝수 행에 다른 배경색이 표시되도록 관련 속성을 설정하시오. (▶ 다른 배경색 : Access 테마 3) 
    • "다른 배경색" : Access 테마 3
      • "본문" 속성 시트 창의 [형식] 탭에서 "다른 배경색" 속성을 변경하면 됨.

 

  • 본문의 배경색을 "#FEE4BA"로 설정하고, 본문 영역이 항상 표시되도록 설정하시오.
    • <본문>
      • "배경색" : #FEE4BA 
      • "표시 시기" : 항상

 

  • <소속지점별판매현황> 폼의 하위 폼으로 추가된 <판매내역> 폼이 위 그림과 같이 표시되도록 설정하시오.
    • 기본 폼의 '소속지점코드'에 해당하는 자세한 판매내역이 하위 폼에 표시되도록 설정하시오.
      • <판매내역> 폼
        • "기본 필드 연결" : 소속지점코드
        • "하위 필드 연결" : 소속지점코드

 

  • 본문의 'txt주문수량합'에 '주문수량'의 합계를 표시하되 합계가 0인 경우 0이 표시되도록 설정하시오.
    • <txt주문수량합>
      • "컨트롤 원본" : =Sum([주문수량])
      • "형식" : 0

 

  • 폼 바닥글의 'txt날짜와시간'에 현재 날짜와 시간이 [표시 예]와 같이 표시되도록 설정하시오.
    • ▶ 표시 예 : 2020년 6월 5일 14시 01분 52초 → 2020-06-05 오후 2:01:52
      • <txt날짜와시간>
        • "컨트롤 원본" : = Now()
        • "형식" : 기본 날짜

 

 

● 입력 및 수정 : 매크로 함수

예제
  • MessageBox : 메시지 박스에 함수의 결과를 포함한 문장 출력하기
    • ="현재 시간은 " & Date() & " 입니다."
      • 등호(=)를 먼저 입력한 후, 문장은 큰따옴표("") 안에, 입력해준다.
        • 메시지 박스에 함수의 결과를 포함하지 않아도 될 경우에는, 등호 없이 문자만 입력한다. (예: 현재 시간은 7시 입니다.)
      • & 를 사용하여 문장과 문장 또는 문장과 함수를 연결한다.

 

  • <판매내역입력> 폼의 '판매내역입력'(cmd판매내역) 단추를 클릭하면 <업무현황조회> 폼을 '폼 보기' 형식으로 여는 <입력작업> 매크로를 생성하여 지정하시오.
    • 폼이 열리면 데이터를 추가할 수 있도록 레코드 선택기의 위치를 이동시키시오.

OpenForm 함수를 작성한 후, GoToRecord 함수를 작성한다.

 

  • <업무현황> 테이블을 액셀 파일(*.xlsx)로 변환하는 <액셀변환> 매크로를 생성하시오.
    • ▶ 변환된 파일 이름은 '업무현황'으로 하시오.

ExportWithFormatting 함수를 사용한다.

 

  • <종목별등록내역> 폼의 폼 머리글을 더블클릭하면 다음과 같은 긴으을 수행하는 <오름정렬> 매크로를 생성한 후 지정하시오.
    • ▶ 모든 레코드를 표시하고, SortAscending을 이용해 오름차순으로 정렬하시오.

 

 

 

● 입력 및 수정 : 하위 폼 추가하기

예제
  • 1번 그림을 참조하여 <주문조회> 폼에 <주문내역2> 폼을 하위 폼으로 추가하시오.
    • ▶ '하위 폼'의 연결 기준은 각 'cmb제품코드'와 '제품코드'로 할 것
    • ▶ '하위 폼/하위 보고서' 컨트롤의 이름은 'child주문내역2'로 할 것

 
[기본 필드 연결] : 제품코드 -> cmb제품코드 (변경)

 

 

● 조회 및 출력 : 보고서 완성

예제
  • 다음과 같이 정렬 및 그룹화를 설정하시오.
    • ▶ '출발일자'의 연도와 월을 이용하여 오름차순 정렬
    • ▶ '출발일자'의 연도와 월에 대해 그룹 머리글 설정

'그룹, 정렬 및 요약' 창에서 '그룹 추가'를 클릭한 후, [식] 클릭

'식 작성기'=YEAR([출발일자]) & MONTH([출발일자]) 를 입력한 후 <확인> 클릭

 

그룹을 추가하면 자동으로 그룹 머리글이 표시되도록 설정되므로, 별도로 그룹 머리글을 설정할 필요는 없다.

 

  • 페이지 바닥글의 'txt날짜' 컨트롤에는 날짜만을 표시하는 함수와 Format()를 이용하여 [표시 예]와 같이 표시하시오.
    • ▶ 2020-Jun-03 수요일

aaa : 월~일 / aaaa : 월요일~일요일

 

  • ① '고객명'과 '상품이름'을 기준으로 오름차순 정렬하시오.

'고객명'을 기준으로 먼저 오름차순 정렬 후, '상품이름'을 기준으로 오름차순 정렬한다.

 

  • 보고서 머리글의 'txt고객코드'에는 <판매> 폼의 'lst고객목록'에서 선택한 고객의 '고객코드'가 표시되도록 설정하시오.
    • ▶ <판매> 폼이 열려있고, 'lst고객목록'에서 '고객코드'가 선택되어 있다고 가정할 것

 

※ <판매> 폼을 열고, 'lst고객목록' 컨트롤에서 특정 값을 선택한 후 보고서를 실행해야 'txt고객코드'에 정상적인 값이 표시된다.

 

 

● 조회 및 출력 : 이벤트 프로시저

예제
  • <열차표판매현황> 폼의 '할인금액계산'(cmd할인금액계산) 단추를 클릭하면 다음과 같은 기능을 차례대로 수행하는 이벤트 프로시저를 구현하시오.
    • ▶ DoCmd 개체의 메서드를 이용하여 <할인금액계산> 쿼리를 실행하도록 하시오.
    • ▶ 현재 폼의 Recalc 메서드를 실행하시오.
Private Sub cmd할인금액계산_Click()
    DoCmd.OpenQuery "할인금액계산"
    Me.Recalc
End Sub

 

  • <사원별판매현황> 폼의 'txt성명' 컨트롤에 '이름'을 입력하고 '조회(cmd조회)' 단추를 클릭하면 입력된 '이름'에 해당하는 레코드를 찾아 보여주는 기능을 수행하도로 이벤트 프로시저를 구현하시오.
    • ▶ 조건에 맞는 레코드가 여러 개 있을 경우 첫 번째로 일치하는 레코드를 찾을 수 있도로 하시오.
    • ▶ 현재 폼의 RecordSetClone 속성과 Bookmark 속성, FindFirst 메서드를 이용

 

Private Sub cmd조회_Click()
    Me.RecordSetClone.FindFirst "이름 = '" & txt성명 & "'"
    Me.Bookmark = Me.RecordSetClone.Bookmark
End Sub

 

  • <사원별판매현황> 폼의 '인쇄(cmd인쇄)' 단추를 클릭하면 <우수사원현황> 보고서를 '인쇄 미리 보기' 형식으로 여는 이벤트 프로시저를 구현하시오.
    • ▶ <우수사원현황> 보고서를 열기 전에 현재 폼을 닫으시오.
    • ▶ DoCmd 개체의 메소드 사용
Private Sub cmd인쇄_Click()
    DoCmd.Close	  // 현재 폼 닫기
    DoCmd.OpenReport "우수사원현황", acViewPreivew	// 보고서 열기 (인쇄 미리보기 형식)
End Sub

 

  • <운항고객관리> 폼의 '삭제(cmd삭제)' 단추를 클릭하면 다음과 같은 기능을 수행하도록 이벤트 프로시저를 구현하시오.
    • ▶ <보험사현황> 테이블에서 '보험사'가 'cmb보험사' 컨트롤의 값과 동일한 레코드를 삭제하시오.
    • ▶ Requery 메서드를 호출하여 폼의 데이터를 다시 불러오고, '보험사업데이트' 프로시저를 실행하시오.
Private Sub cmd삭제_Click()
    DoCmd.RunSQL = "DELETE * FROM 보험사현황 WHERE 보험사 = cmb보험사"
    DoCmd.Requery       // 폼의 데이터 다시 불러오기
    Call 보험사업데이트    // '보험사업데이트' 프로시저 실행하기
End Sub

 

  • <소매점관리> 폼의 '삭제(cmd삭제)' 단추를 클릭하면 다음과 같은 기능을 수행하도록 이벤트 프로시저를 구현하시오.
    • ▶ <소매점2> 테이블에서 'cmb소매점코드'에 해당하는 레코드를 찾아 삭제하시오.
    • ▶ Ado 개체를 이용하시오.
Private Sub cmd삭제_Click()
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.ActiveConnection = CurrentProject.Connection
    rs.CursorType = AdOpenDynamic
    rs.LockType = adLockOptimistic
    rs.Open "SELECT * FROM 소매점2 WHERE 소매점코드 = '" & cmb소매점코드 & "'"
    rs.Delete
    rs.Close
End Sub

 

  • <판매> 폼의 '삭제(cmd삭제)' 단추를 클릭할 때 다음과 같은 기능을 수행하도록 이벤트 프로시저를 구현하시오.
    • ▶ <상품_2> 테이블에서 '상품이름' 필드의 값이 'cmb상품이름' 컨트롤에서 선택한 값과 동일한 레코드를 삭제하시오.
    • ▶ 삭제를 수행한 후 현재 'cmb상품이름'에 선택된 값을 지우시오.
    • ▶ 'cmb상품이름'의 행 원본을 참조하여 'cmb상품이름'에 표시되는 데이터를 갱신하시오.
Private Sub cmd삭제_Click()
    DoCmd.RunSQL = "DELETE * FROM 상품_2 WHERE 상품이름 = cmb상품이름"
    cmb상품이름 = ""
    cmb상품이름.RowSource = "SELECT 상품_2.상품이름 FROM 상품_2 ORDER BY 상품_2.상품이름;"
End Sub

 

  • <주문내역1> 폼에서 폼 바닥글의 'cmb제품'과 'cmb대리점' 컨트롤에서 '제품'과 '대리점코드'를 각각 선택하고, '찾기(cmd찾기)' 단추를 클릭하면 선택한 '제품'과 '대리점코드'에 해당되는 레코드로 옮겨가서 정보를 보여주는 기능을 수행하는 이벤트 프로시저를 구현하시오.
    • ▶ 현재 폼의 RecordSetClone 속성과 Bookmark 속성, FindFirst 메서드 등을 이용
Private Sub cmd찾기_Click()
    Me.RecordsetClone.FindFirst "제품 = '" & cmb제품 & "' And 대리점코드 = '" & cmb대리점 & "'"
    Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub

 

  • <학생등록> 폼에서 '이름정렬(cmd정렬)' 단추를 클릭하면 다음과 같은 기능을 수행하도록 이벤트 프로시저를 구현하시오.
    • ▶ '이름'을 기준으로 오름차순 정렬할 것
    • ▶ 폼의 OrderBy 및 OrderByOn 속성을 이용할 것
Private Sub cmd정렬_Click()
    Me.OrderBy = "이름 ASC"    // "항목이름 정렬방법(ASC/DESC)"
    Me.OrderByOn = True
End Sub

 

  • <회원정보> 폼의 '수정' 버튼(cmd수정)을 클릭하면 다음과 같은 기능을 수행하도록 이벤트 프로시저를 구현하시오.
    • ▶ <회원1> 테이블에서 'cmb회원번호'에 선택된 '회원번호'를 가진 회원의 정보를 'txt성명', 'txt전화번호', 'txt주소', 'txt회원등급'의 데이터로 수정할 것
    • ▶ Requery를 이용하여 폼의 데이터를 다시 불러올 것

 

Private Sub cmd수정_Click()
    DoCmd.RunSQL "UPDATE 회원1 SET 성명 = txt성명, 전화번호 = txt전화번호, 주소 = txt주소, 회원등급 = txt회원등급 WHERE 회원번호 = cmd회원번호"
    DoCmd.Requery
End Sub

 

  • <수강신청내역> 폼의 '수정(cmd수정)' 단추를 클릭하면 다음과 같은 기능을 차례대로 수행하는 이벤트 프로시저를 구현하시오.
    • ▶ DoCmd 개체의 메서드를 이용하여 <1000원증가> 쿼리를 실행하도록 하시오.
    • ▶ 현재 폼의 Recalc 매서드를 실행하시오.
Private Sub cmd수정_Click()
    DoCmd.OpenQuery "1000원증가"
    Me.Recalc
End Sub

 

  • <주문정보조회> 폼의 'txt조회일' 컨트롤에 조회할 주문일을 입력하고, '조회(cmd조회)' 버튼을 클릭하면 다음과 같은 기능이 수행되도록 이벤트 프로시저로 구현하시오.
    • ▶ 'txt조회일' 컨트롤에 입력한 주문일에 대한 자료만 표시할 것
    • ▶ Filter와 FilterOn 속성을 이용할 것
Private Sub cmd조회_Click()
    Me.Filter = "주문일 = #" & txt조회일 & "#"	// 날짜를 입력 받을 경우에는 작은 따옴표(')가 아닌 #으로 대상을 감싼다.
    Me.FilterOn = True
End Sub

 

 

● 처리 기능 : 크로스탭 쿼리

예제
  • 부서명별 입사년도별로 '승진시험점수'의 최대값을 조회하는 <부서-입사년도별실적> 크로스탭 쿼리를 작성하시오.
    • ▶ <사원관리> 쿼리를 이용하시오.
    • ▶ 입사년도는 '입사일자' 필드를 이용하고, "년도"를 & 연산자로 연결하여 표시하시오.
    • ▶ 쿼리 실행 결과 표시되는 필드와 필드명은 <그림>과 같이 표시되도록 설정하시오.

 

1개의 쿼리를 이용하여 크로스탭 쿼리를 만드는 문제이므로, "쿼리 마법사"를 이용한다.

 

  • 상품이름별 주소별로 '주문수량'의 합계를 조회하는 <주문수량조회> 크로스탭 쿼리를 작성하시오.
    • ▶ <고객>, <판매현황>, <상품> 테이블을 이용하시오.
    • ▶ '주소' 필드 중 '서울', '인천', '경기'만 표시하시오.
    • ▶ 쿼리 실행 결과 표시되는 필드와 필드명은 <그림>과 같이 표시되도록 설정하시오.

 

설정 <주소> 필드의 속성 시트

 

 

● 처리 기능 : 매개변수 쿼리

예제
  • <열차표종합> 쿼리를 이용하여 A 구간의 열차를 이용하는 고객의 정보를 조회하는 <A구간고객정보> 쿼리를 작성하시오.
    • ▶ '좌석수'를 기준으로 내림차순 정렬하여 표시하시오.
    • ▶ '좌석수'가 많은 순으로 상위 25%만 표시하시오.

'쿼리' 속성 시트 창의 '일반' 탭에서 상위 값을 25%로 설정한다.

 

  • <열차표종합> 쿼리를 이용하여 '고객이름'의 일부를 매개 변수로 받아 해당 고객의 열차표 정보를 조회하는 <고객열차조회> 매개 변수 쿼리를 작성하시오.
    • ▶ '출발일자' 필드를 기준으로 오름차순 정렬하여 표시하시오.
    •   

매개변수를 받을 필드의 '조건'에 다음과 같이 입력한다.

 

 

● 처리 기능 : 불일치 검색 쿼리

예제
  • <상품> 테이블에는 존재하지만 <판매현황> 테이블에는 없는 상품의 정보를 조회하는 <판매되지않은상품> 쿼리를 작성하시오.
    • ▶<판매현황> 테이블에 없는 '상품코드'는 판매되지 않은 것으로 가정하시오.
    • ▶ NOT IN 예약어를 사용하여 SQL 명령으로 작성하시오.
    • ▶ 쿼리 실행 결과 표시되는 필드와 필드명은 <그림>과 같이 표시되도록 설정하시오.

 

'상품' 테이블만 불러온 후, 작업을 수행한다.

 

  • 다음과 같은 기능을 수행하는 <미등록회원> 쿼리를 작성하고 저장하시오.
    • ▶ 전체 회원에 대해 현재 등록되지 않은 회원 조회
    • ▶ 결과의 필드명은 '회원정보'와 '성명', '전화번호'로 표시
    • ▶ <회원>과 <수강내역> 테이블 이용

 

'쿼리 마법사'를 사용하여 만들면 더 간단하게 만들 수 있다.

 

 

● 처리 기능 : 기타 쿼리

예제
  • <관심소매점>과 <제품별판매현황> 테이블을 이용하여 소매점별 총 반품수를 표시하는 <소매점별반품현황> 쿼리를 작성하시오. 
    • 반품이 없는 소매점까지 표시하시오.
    • ▶ 총 반품수가 많은 순으로 정렬하여 표시하시오.

반품이 없는 소매점까지 표시해야 한다.

 

조인 속성 설정

 

  • <판매현황>과 <상품> 테이블을 이용하여 '상품이름'별 '판매단가', '매출수수료', '할인액'을 조회하는 <할인액> 쿼리를 작성하시오.
    • ▶ '할인액'은 '주문수량'이 30 이상이면 '판매단가'의 2%로, 그렇지 않으면 '판매단가'의 1%로 계산하시오. (IIf 함수 사용)
    • ▶ 동일한 레코드는 한 번만 표시되도록 설정하시오.

 

  • '제품코드' 필드의 NULL 값을 "차-100"으로 업데이트하고, 업데이트 쿼리의 이름은 '변경'으로 지정하시오.

 

 

  • <판매종합> 쿼리를 이용하여 대리점명별 '주문수'와 '주문금액'의 평균을 조회하는 <대리점명별요약> 쿼리를 작성하시오.
    • ▶ '주문일자'가 10일 이전인 주문만 표시하시오. (Day 함수 사용)
    • ▶ '평균주문수'와 '평균주문금액'은 정수로 표시하시오. (Int, Avg 함수 사용)

"요약"을 각각 '식', '식', '조건'으로 설정해준다.

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖