본문 바로가기
내가 보려고 정리하는 알쓸백과/자격증 & 공부

(컴퓨터활용능력) 1급 엑세스(데이터베이스) 실기_기출 분석/실전 전략

by Hey Nary 2023. 3. 2.
728x90
반응형
 [ 컴퓨터 활용능력 게시글 타래 ]
1. 컴퓨터 활용 능력 1급, 2급 알아보기 : 컴퓨터 활용 능력 1급, 2급 알아보기
2. 컴활 1급 준비 전 필독 : 컴활 1급 준비 꿀팁 ! 접수/필기/액셀/액세스
3. 컴퓨터 활용 능력 1급 필기 공부법과 후기 : 컴활 1급 필기 빠르게 합격하기! / 직장 병행 후기
4. 컴퓨터 활용 능력 1급 실기 공부법과 후기 : 컴활 1급 실기 빠르게 합격하기! / 직장 병행 후기
5. (실기) 스프레드시트 (엑셀) 요약 : 엑셀(스프레드시트) 실기_총 정리/엑셀 단축키 요약
6. (실기) 스프레드시트 (엑셀) 실전 요약 : 엑셀(스프레드시트) 실기_기출 분석/실전 전략 요약
7. (실기) 데이터베이스 (엑세스) 요약 : 1급 엑세스(데이터베이스)실기_총 정리/엑세스 단축키 요약
8. (실기) 데이터베이스 (엑세스) 실전 요약 : 본 게시글
9. 컴퓨터 활용 능력 응시 전 필수 체크리스트 (자료 공유) : 시험 전 체크 리스트 - 컴퓨터 활용 능력 1급/2급

엑세스(데이터베이스)실기_총 정리/엑세스 단축키 요약에서 엑세스 실기의 전체적인 이론과 숙지하면 좋을 단축키를 정리하였는데요,

이제 본격적으로 실제 기출 문제 풀이에 있어 알아야 할 실전 전략들을 정리해 봅니다.

 

  • 실전 전략

앞서 실기 빠르게 합격하기! / 직장 병행 후기 [실기 합격 후기] 에서 정리했었죠? 실전 준비에 앞서 다시 한번 정리해 봅니다.

실기 시험에서의 배점과 목표 점수는 아래와 같습니다.

데이터베이스 번호 배점 [점] 목표 점수
DB구축
30점
1 테이블 완성 20 25점 이상
2 조회 속성 설정, 관계 설정, 외부 데이터 가져오기 등 5
3 5
입력 및 수정기능 구현
25점
1 폼 완성 15 17점
2 콤보 상자, 조건부 서식, 컨트롤(단추) 생성, 이벤트 프로시저 및 매크로 작성 5
3 5
조회 및 출력 기능 구현
20점
1 보고서 완성 15 15점
2 이벤트 프로시저 및 매크로 작성 5
처리 기능 구현
25점
1 쿼리 작성 4 18점
2 쿼리 작성, 이벤트 프로시저 및 매크로 작성 7
3 7
4 7
합계 // 합격 점수 : 스프레드시트, 데이터베이스 평균 70점 100점 75점

전략은, 상대적으로 사람들에게 익숙한 엑셀에서 최대한 점수를 확보하고 데이터베이스는 최소 커트 라인을 넘기는 것입니다.

DB구축 최대한 만점 / 입력 및 수정기능 구현 에서 이벤트 프로시저 외에 최대한 맞추기 / 조회 및 출력 기능 구현 에서 이벤트 프로시저 외에 최대한 맞추기 / 처리 기능 구현 에서 쿼리 최대한 맞추기 를 해야 합격 안정권입니다.

엑세스는 엑셀보다 자잘한 실수가 많기 쉬우므로 반드시 시험 마지막 10분 정도는 남기는 연습을 해서 검토하는 버릇을 들여야 합니다.

 

추가적으로 컴활 실기 시험장에서 확인할 세팅 옵션을 정리하겠습니다.

  • 매크로 실행 확인 : [파일] > [옵션] > [보안센터]-[보안센터 설정]-[매크로 설정]-'모든 매크로 포함' 체크

 

이 전략을 마음에 두었다면, 이제 기출문제 풀이와 실전에서 꼭 숙지해야 할 꿀팁들을 정리해 보겠습니다.

 

  • 영역 별 실기 분석

* (알고가기) 이벤트 프로시저에서 조건식 작성 순서

1. 필드의 데이터 형식을 파악 : <폼>의 레코드 원본이 무슨 <테이블>인지, 해당 <테이블>의 [필드]의 데이터 형식이 무엇인지.

- 기본 형식 : 필드=컨트롤

예) 거래처명 = cmd거래처찾기

2. 작은 따옴표로 숫자와 컨트롤을 구분 : 데이터 형식에 텍스트이면 ' '으로 구분해 준다.

예) 거래처명 = 'cmd거래처찾기'

3. 큰 따옴표로 컨트롤을 구분 : 컨트롤을 제외한 나머지를 큰 따옴표로 묶어서 구분한다.

예) " 거래처명=' " cmd거래처찾기 " ' "

4. 엠퍼샌드(&) 로 컨트롤과 나머지 부분을 연결

예) " 거래처명=' " & cmd거래처찾기 & " ' "

 

(예시)

1. Me.Filter = 필드 like *Txt필드*

2. Me.Filter = 필드 like ' *Txt필드* '

3. Me.Filter = "필드 like ' * " Txt필드 " * ' "

4. Me.Filter = "필드 like ' * " &  Txt필드 & " * ' "

 

[DB구축]

1) 테이블 완성

  • 입력 마스크 : 마스크 문자열 정의;저장여부(0은 데이터와 함께, 1은 데이터만);자리 표시자
    • 123-456-7890 의 형식 : 000\-00\-0000\;0
    • 암호 형식으로 보이게 하기 : Password
[모든 문자]
\ : \ 다음에 오는 문자가 그대로 표시
C : 선택 요소, 모든 문자, 공백
& : 필수 요소, 모든 문자, 공백

[대소문자]
> : 이후 모두 대문자로 변환
< : 이후 모두 소문자로 변환

[숫자]
0 : 필수 요소, 숫자
9 : 선택 요소, 숫자, 공백
# : 선택 요소, 숫자, 공백, 덧셈기호, 뺄셈기호

[문자]
L : 필수 요소, 문자
? : 선택 요소, 문자
A : 필수 요소, 영문대문자, 숫자
a : 선택 요소, 문자, 숫자
  • 기본값 : 새로운 레코드가 추가될 때 "text" 값이 자동으로 입력되도록 함
  • 유효성 검사 규칙
    • n글자로만 제한하기 : Len([필드]=n
    • 숫자 값의 조건을 0 이상으로 제한하기 : >=0
    • "A","B","C" 까지만 구성되게 하기 : In("A","B","C")
    • 1 이상 1000 이하로 제한하기 : Between 1 And 1000 
                                                    >=1 And <=1000
    • 이름에 공백 허용하지 않기 : Not Like "* *"
      이메일의 경우 : InStr([전자우편]," ")=0 And Like "*@*"
  • 테이블 추가 : 추가 쿼리로 기존 테이블에 존재하지 않는 레코드 추가하기
    • [만들기]-[쿼리], 추가할 데이터가 들어 있는 테이블 선택
    • 필드를 구성한 후,빈 공간 우클릭 > [쿼리유형]-[추가 쿼리], 데이터가 추가될 테이블 선택
    • 기준이 되는 필드 조건 : Not In (Select 필드 From 추가될테이블)
      • 레코드에 조건이 있을 때 : Not In (Select 필드 from 추가될테이블 where 조건)
  • 기본키 설정
    • 오류창 : "인덱스, 기본 키 또는 관계에서 중복된 값을 만들었기 때문에 테이블에 요청된 변경 사항이 적용되지 않았습니다. ~"
      • 이 경우 문제에서 어떻게 중복된 값을 없앨지 힌트를 준다.
        쿼리로 중복 값을 검색하여 데이터를 고치는 방법은 아래와 같다.
        • [만들기]-[쿼리]-[쿼리 마법사] : 중복 데이터 검색 쿼리 마법사
          • 중복 값과 필드를 따로 표시할 필요는 없으므로 필드는 따로 선택하지 않는다.
          • 쿼리를 실행하면 중복값이 확인되고, 해당 데이터를 테이블에 들어가 직접 고친다.
          • 오류가 사라지면 기본키를 설정한다.
  • IME 모드 : 입력되는 문자의 상태 지정
    • 영문자 전자 : 글자 간격이 넓은 영문 입력
    • 영문자 반자 : 일반적인 영문 입력

 

2) 조회 속성 설정

  • 컨트롤 표시 바꾸기 : 디자인보기-[조회] 에서 변경 가능하다.
    • 콤보상자에서 동일한 값이 중복되지 않고 한 번만 나타나게 설정하기
      • 콤보상자 만들기 : 컨트롤 우클릭 > 변경 > 콤보 상자 
      • 필드 속성에서 '행 원본' 작성기를 클릭해 목록으로 나타나게 할 필드를 추가한다.
      • 중복되지 않게 한 번만 설정하기
        • 방법 1 : [쿼리 속성]에서 '고유 값' 속성을 '예' 로 지정한다.
        • 방법 2 : [요약] 에서 '묶는 방법' 을 추가한다.
    • 목록상자
      • 바운드 열 : 필드에 저장되는 열(상자 열었을 때 보이는 열 중에서 몇 번째 열을 보일건지).
        • 무조건 1로 지정해 놓고, 상자가 가지고 있어야 하는 값을 첫 번째 필드로 만들기.
  • 행 원본 설정하기 : 작성기 를 누르고, 테이블을 선택한다.
    • 전체 데이터를 추가할 때는 테이블 아래에서 * 을 선택해 필드에 드래그한다.
    • 쿼리 작성기를 닫으면 SQL문이 작성되어 들어가 있다.
  • 명령 단추 만들기 : [폼 디자인 도구]-[디자인]-[컨트롤]-[단추]
    • 명령 단추 마법사 대화상자에서 각 종류와 매크로 함수 지정

 

3) 관계 설정

  • "기본 테이블의 참조 필드에 고유 인덱스가 없습니다" : 관계를 설정할 테이블의 기본 키가 없기 때문으로, 기본 키를 설정한 후 다시 관계를 성립한다. 

 

4) 외부 데이터 가져오기

 

[입력 및 수정기능 구현]

1) 폼 완성

  • 속성 시트 단축키 : Alt + Enter
  • 캡션 속성은 해당 컨트롤의 제목이고, 이름 속성이 실제 개체의 식별자 역할을 함
  • 기본폼과 하위폼 연결 : 하위폼 개체를 선택한 후, [속성 시트]-[데이터]-[기본 필드 연결] 작성기 단추 > 기본, 하위 필드를 각각 선택 후 확인
  • 하위폼 본문 탭 순서 : 하위폼 선택기 > 바로가기 메뉴 > 탭 순서
  • 레코드 탐색 단추와 폼의 구분 선이 표시되지 않도록 설정하기 : '탐색 단추(아니오)', '구분 선(아니오)' 속성을 설정한다.
  • 컨트롤 팁 텍스트 : 컨트롤에 마우스를 가져다 대면 텍스트 상자를 띄우기.
  • 클릭하면 하이퍼링크가 연결되게 하기 : 속성 창 > 하이퍼링크 주소 > 주소 설정하기.

 

2) 콤보 상자

  • 콤보 상자 변경 : 컨트롤 선택 > 바로가기 메뉴 > [변경]-[콤보 상자]
  • 콤보 상자 내용 추가하기 : [속성 시트]-[행 원본] 작성기 단추 > 테이블 추가 후 쿼리 구성 > 닫으면 조건이 입력되어 있다.
    • 컨트롤에서 '남'은 '-1', '여'는 '0'으로 입력되게 하기
      행원본 : -1;남;0;여
  • 목록 값만 허용 : [속성 시트]-[데이터] 에서 변경 가능하다.

 

3) 조건부 서식

  • [디자인보기]-[폼 디자인 도구]-[서식]-[컨트롤 서식] 그룹, 조건부 서식

 

4) 컨트롤(단추) 생성

  • 컨트롤 원본 지정하기 : [속성 시트]-[모두]-[컨트롤 원본]
    • 전체 개수 지정 : =Count(*)
    • 날짜 지정 : =Date()
    • 특정 테이블의 필드 합계가 표시되도록 구현하기
      • =DSum ("[필드]", "테이블", "조건식")
        • 조건식 : "[상품코드]='"&[상품코드]&"'"
    • 조건에 맞는 레코드의 개수가 표시되도록 구현하기
      • =Dcount("[필드]", "테이블", "조건식")
        • =Dcount("*", "랜탈도서", "[반납여부]=0")
  • 형식 지정하기
    • 날짜 지정 : yyyy-mm-dd
      • yyyy年 m月 dd日 : 월 이 1자리인지 2자리인지 확인을 꼭 한다. 1자리의 경우 m만 써도 된다.
Count(*) : 레코드의 전체 개수 (Null 포함) 계산

 

5) 이벤트 프로시저 및 매크로 작성

  • cmd조회 버튼 클릭 시 특정 레코드만 조회
    • Private Sub cmd조회_Click()
      Me.RecordSource = "SELECT 거래물품.공급업체명 FROM 거래물품 Where 공급업체명=' " & txt공급업체명 & " ' "
      End Sub
  • cmd종료 버튼 클릭 시, 폼에 변경 내용이 있으면 사용자 확인 없이 무조건 저장 후 개체 닫기
    • Private Sub cmd닫기_Click()
      DoCmd.Close acForm, "폼이름", acSaveYes
      End Sub
  • Txt수량 컨트롤 값을 변경 시, Txt금액 컨트롤에 Txt수량 * Txt원가 값이 입력되게 작성하고 Txt부가세 컨트롤에 조건에 따른 값이 입력되게 하기
    • Private Sub Txt수량_AfterUpdate()
      Txt금액 = Txt원가 * Txt수량
      If Txt과세 = "VAT" Then
          Txt부가세 = Txt원가 * Txt수량 * 0.1
      Else
          Txt부가세 = 0
      End If
      End Sub
  • 옵션 그룹 컨트롤(fra정렬)의 값에 따라 컨트롤 값이 변경되면 해당 필드를 중심으로 내림차순 정렬되어 표시되도록 하기 (오름차순의 경우, desc 생략)
    • 레이블 이름에 따라 값이 지정되어 있음 (1,2,3)
    • Private Sub fra정렬_AfterUpdate()
      Select Case fra정렬
      Case 1
          Me.OrderBy = "필드1 desc"
      Case 2
          Me.OrderBy = "필드2 desc"
      Case 3
          Me.OrderBy = "필드3 desc"
      End Select
      Me.OrderByOn = True
      End Sub

 

[조회 및 출력 기능 구현]

1) 보고서 완성

  • 컨트롤 원본 : =으로 시작
    • 양식 : [필드], "문자", 연결할 때는 & 사용
    • 일련번호 : =1 (누적 합계 : 그룹)
    • 누적합계 : =Count(*)

- 합계 : Sum([필드] 계산식)

- 페이지 : "현재" & [Page] & "페이지 / 총 " & "Pages] & "페이지"

- 조건문 : Iif([필드]="조건","True일 때 값","False일 때 값")

  • [속성 시트]-[형식] 에서 변경 가능한 것
    • 반복 실행 구역
    • 형식과 소수 자릿수 
  • 정렬 : [디자인]-[그룹화 및 정렬]

 

2) 이벤트 프로시저 및 매크로 작성

  • Cmd검색을 누르면 Txt조건 과 같은 문자가 포함된 필드의 레코드를 찾아 표시하기.
    • Private Sub Cmd검색_Click()
      Me.Filter = " 필드 like ' * " & Txt조건 &  " * "
      Me.FilterOn = True
      End Sub
      • 문자열 : Me.Filter ="필드명='"&컨트롤명&"'"
      • 숫자 : Me.Filter ="필드명="&컨트롤명
      • 날짜형 : Me.Filter ="필드명=#" & 컨트롤명 & "#"
      • 문자열의 일부와 일치 : Me.Filter ="필드명 like '*" & 컨트롤명 & "*'"
  • cmd검색을 누르면 cmb_필드 컨트롤에서 선택한 값으로 조회되게 하기.
    • Private Sub cmd검색_Click()
      DoCmd.ApplyFilter , " 필드 = ' " & cmd_필드 & " ' "

 

[처리 기능 구현]

1) 쿼리 작성

  • 값의 유무를 확인하는 연산자
조건 결과 조건 결과
Is Null 값이 없는 레코드 Is Not Null 값이 있는 레코드
"" (공백 없는 따옴표) Null이 아닌 빈 값 Not "" 값이 있는 레코드

- DateSerial(Year,Month,Day) : yyyy-mm-dd 형식이 된다.

 

  • 쿼리 조건 작성하기

- 양식 : [필드], 값에는 괄호 따로 붙이지 않는다.

 

  • 쿼리 마법사 : 단순 쿼리 마법사 (선택한 필드를 이용한 쿼리), 크로스탭 쿼리 마법사 (스프레드 형식), 중복 데이터 검색 쿼리 마법사, 불일치 검색 쿼리 마법사

- 테이블 만들기 쿼리 : [쿼리 도구]-[디자인]-[쿼리 유형]-'테이블 만들기'

- 이력이 없는 레코드 조회하기 쿼리

   - 관계의 조인 속성에서, 조인된 필드가 일치하는 레코드만 포함 옵션 선택

       - 왼쪽 외부 조인 : 왼쪽 테이블의 레코드는 모두 포함하고, 존재하지 않는 오른쪽 테이블의 레코드는 Null로 표시된다.

                                   두 테이블을 함께 조회하는 레코드의 경우, 꼭 조인 속성을 별도로 설정하는 게 필요할지 검토해야 한다.

   - 필드 조건 : IS NULL

- [필드1]이 가장 많은 [필드2]가 나타도록 정렬하기

   - 쿼리 디자인창 > 바로가기 메뉴 > [속성] > '상위값' 1

 

 

2) 이벤트 프로시저 및 매크로 작성

  • Cmd닫기 를 클릭하면 메세지 창을 띄운 후 종료하는 이벤트 프로시저
    • Private Sub Cmd닫기_Click()
      MsgBox Me.Name & "작업을 종료합니다"
      DoCmd.Close
      End Sub
  • Cmd닫기 를 클릭하면 메시지 대화상자가 띄워지고, 예/아니오/취소 중 예를 누르면 종료하는 이벤트 프로시저
    • Private Sub Cmd닫기_Click()
      a = MsgBox("폼을 닫으시겠습니까?", 아이콘종류 + vbYesNoCancel, "메시지 창 제목")
      if a = vbYes Then
      DoCmd.Close
      End If
      End Sub
[아이콘 종류]
vbQuestion : 물음표 아이콘
vbCritical : 경고 아이콘
vbExclamation : 알림 아이콘
vbInformation : 정보 아이콘

[버튼 종류]
vbYesNoCancel : 예/아니오/취소
vbYesNo : 예/아니오
vbRetryCancel : 재시도/취소
vbOKOnly : 확인
vbOKCancel : 확인/취소
vbAbortRetryIgnore : 중단/재시도/무시
  • 매개변수 쿼리 : [만들기]-[쿼리] 에서 쿼리 디자인 작성 후, 매개변수로 활용할 필드의 조건에 대괄호 []를 사용한다.
    • 예) 매개변수에 Txt을 입력하면 해당 필드의 다른 레코드를 조회하기
           조건 : Like "*" & [매개변수] & "*"
  • cmd_추가 버튼을 누르면 각 텍스트 상자에 입력된 데이터를 <테이블>의 각 필드에 추가하기.
    • DoCmd.RunSQL "insert into 테이블(필드1,필드2,...) values (txt_텍스트1,txt_텍스트2,...)
  • txt텍스트 을 더블클릭하면 Form을 열기
    • Private Sub txt텍스트_DblClick(Cancel As Integer)
      DoCmd.OpenForm "Form", acNormal, "텍스트 = ' " & txt텍스트 & " ' "
  • cmd미리보기 을 클릭하면 Report을 인쇄 미리보기로 열기
    • DoCmd.OpenReport "Report", acViewPreview

 

 

 

 

* 예시 데이터의 출처 : 시나공 이기적 컴퓨터활용능력 실기_연습문제 (2021)

 

반응형

 

728x90
반응형

댓글