20차시 연계 · 3과목 데이터베이스 일반

컴활 1급 필기 Access 매크로·VBA 문제 모음

매크로 특징·AutoExec, 폼·보고서·실행 관련 매크로 함수, 주요 이벤트, DoCmd 개체, Forms 컬렉션, Recordset 개체 범위 문제 23개를 모았습니다. 실전 모의고사 문제 18개를 먼저, 이어서 20차시 확인문제 5개를 보여 줍니다.

2급 기출로 기초 다지기

같은 범위의 2급 기출문제를 먼저 풀면 1급 문제가 쉬워집니다.

데이터베이스 일반2020년 2회 (7월 4일)

Q1.다음 중 아래의 이벤트 프로시저에 대한 설명으로 옳지 않은 것은?

Private Sub cmd재고_Click()
  txt재고수량 = txt입고량 - txt총주문량
  DoCmd.OpenReport "제품별재고현황", _
    acViewDesign, , "제품번호 = '" & cmb조회 & "'"
End Sub
  1. ①'cmd재고' 컨트롤을 클릭했을 때 실행된다.
  2. ②'txt재고수량' 컨트롤에는 'txt입고량' 컨트롤에 표시되는 값에서 'txt총주문량' 컨트롤에 표시되는 값을 차감한 값으로 표시된다.
  3. ③'제품별재고현황' 보고서가 즉시 프린터로 출력된다.
  4. ④'제품별재고현황' 보고서가 출력될 때 '제품번호' 필드 값이 'cmb조회' 컨트롤 값과 일치하는 데이터만 표시된다.
정답과 해설 보기

정답: ③ '제품별재고현황' 보고서가 즉시 프린터로 출력된다.

OpenReport의 보기 형식이 acViewDesign이므로 보고서가 디자인 보기로 열립니다. 바로 인쇄하려면 acViewNormal을 써야 합니다.

출제: 2020년 2회 (7월 4일) 50번

데이터베이스 일반2020년 2회 (7월 4일)

Q2.다음 중 매크로 함수에 대한 설명으로 옳지 않은 것은?

  1. ①FindRecord 함수는 필드, 컨트롤, 속성 등의 값을 설정한다.
  2. ②ApplyFilter 함수는 테이블이나 쿼리로부터 레코드를 필터링한다.
  3. ③OpenReport 함수는 작성된 보고서를 호출하여 실행한다.
  4. ④MessageBox 함수는 메시지 상자를 통해 경고나 알림 등의 정보를 표시한다.
정답과 해설 보기

정답: ① FindRecord 함수는 필드, 컨트롤, 속성 등의 값을 설정한다.

FindRecord는 조건에 맞는 첫 번째 레코드를 찾는 함수입니다. 필드·컨트롤·속성의 값을 설정하는 함수는 SetValue(또는 SetProperty)입니다.

출제: 2020년 2회 (7월 4일) 59번

데이터베이스 일반2020년 1회 (2월 29일)

Q3.다음 중 이벤트 프로시저에서 쿼리를 실행 모드로 여는 명령은?

  1. ①DoCmd.OpenQuery
  2. ②DoCmd.SetQuery
  3. ③DoCmd.QueryView
  4. ④DoCmd.QueryTable
정답과 해설 보기

정답: ① DoCmd.OpenQuery

VBA에서 쿼리를 여는 메서드는 DoCmd.OpenQuery입니다. 같은 방식으로 폼은 DoCmd.OpenForm, 보고서는 DoCmd.OpenReport를 씁니다.

출제: 2020년 1회 (2월 29일) 55번

데이터베이스 일반2020년 1회 (2월 29일)

Q4.다음 중 액세스의 매크로에 대한 설명으로 옳지 않은 것은?

  1. ①반복적으로 수행되는 작업을 자동화하여 간단히 처리할 수 있도록 하는 기능이다.
  2. ②매크로 함수 또는 매크로 함수 집합으로 구성되며, 각 매크로 함수의 수행 방식을 제어하는 인수를 추가할 수 있다.
  3. ③매크로를 이용하여 폼을 열고 닫거나 메시지 박스를 표시할 수도 있다.
  4. ④매크로는 주로 컨트롤의 이벤트에 연결하여 사용하며, 폼 개체 내에서만 사용할 수 있다.
정답과 해설 보기

정답: ④ 매크로는 주로 컨트롤의 이벤트에 연결하여 사용하며, 폼 개체 내에서만 사용할 수 있다.

매크로는 폼뿐 아니라 보고서의 이벤트에 연결하거나 독립 매크로 개체로 만들어 실행할 수 있습니다. AutoExec 매크로처럼 파일을 열 때 자동 실행되게 할 수도 있습니다.

출제: 2020년 1회 (2월 29일) 60번

데이터베이스 일반상시 경향 모의고사 1회

Q5.Access 매크로 함수와 기능의 연결이 옳지 않은 것은?

  1. ①CloseWindow – Access 프로그램을 종료한다.
  2. ②OpenReport – 보고서를 연다.
  3. ③RunSQL – SQL문으로 작성된 실행 쿼리를 실행한다.
  4. ④FindRecord – 조건에 맞는 첫 번째 레코드를 찾는다.
정답과 해설 보기

정답: ① CloseWindow – Access 프로그램을 종료한다.

CloseWindow는 지정한 창(개체)을 닫는 함수이며, Access를 종료하는 함수는 QuitAccess입니다.

출제: 상시 경향 모의고사 1회 50번

데이터베이스 일반상시 경향 모의고사 1회

Q6.Access VBA 문과 기능에 대한 설명으로 옳지 않은 것은?

  1. ①DoCmd.OpenReport "판매", acViewPreview : [판매] 보고서를 인쇄 미리 보기로 연다.
  2. ②DoCmd.Close : 현재 활성화된 개체를 닫는다.
  3. ③DoCmd.Quit : 현재 폼만 닫고 Access는 계속 실행 상태를 유지한다.
  4. ④Me.Requery : 현재 폼의 레코드 원본을 다시 조회하여 최신 데이터를 표시한다.
정답과 해설 보기

정답: ③ DoCmd.Quit : 현재 폼만 닫고 Access는 계속 실행 상태를 유지한다.

DoCmd.Quit는 Access 프로그램 자체를 종료합니다. 현재 개체만 닫는 것은 DoCmd.Close입니다.

출제: 상시 경향 모의고사 1회 54번

데이터베이스 일반상시 경향 모의고사 2회

Q7.다음 중 Access 매크로 함수와 기능의 연결이 옳지 않은 것은?

  1. ①OpenReport – 보고서를 인쇄 미리 보기 등으로 열거나 바로 인쇄한다.
  2. ②GoToControl – 지정한 레코드로 이동하여 그 레코드를 현재 레코드로 만든다.
  3. ③MessageBox – 경고나 정보 메시지가 담긴 메시지 상자를 표시한다.
  4. ④ApplyFilter – 테이블, 폼, 보고서에 필터나 쿼리를 적용하여 레코드를 제한한다.
정답과 해설 보기

정답: ② GoToControl – 지정한 레코드로 이동하여 그 레코드를 현재 레코드로 만든다.

GoToControl은 현재 폼의 지정한 컨트롤(필드)로 포커스를 이동합니다. 지정한 레코드로 이동하는 함수는 GoToRecord입니다.

출제: 상시 경향 모의고사 2회 50번

데이터베이스 일반상시 경향 모의고사 2회

Q8.다음 이벤트 프로시저에 대한 설명으로 옳은 것은?

Private Sub cmd보기_Click()
  DoCmd.OpenReport "매출보고서", acViewPreview, , "지점 = '서울'"
End Sub
  1. ①단추를 클릭하면 매출보고서를 바로 프린터로 인쇄하며, 지점이 '서울'인 레코드만 인쇄한다.
  2. ②단추를 클릭하면 매출보고서를 인쇄 미리 보기로 열고, 지점이 '서울'인 레코드만 표시한다.
  3. ③단추를 클릭하면 매출보고서를 디자인 보기로 열고, '서울'이라는 필터를 보고서에 저장한다.
  4. ④단추를 클릭하면 매출보고서를 인쇄 미리 보기로 열고, 지점이 '서울'인 레코드를 제외하고 표시한다.
정답과 해설 보기

정답: ② 단추를 클릭하면 매출보고서를 인쇄 미리 보기로 열고, 지점이 '서울'인 레코드만 표시한다.

OpenReport의 두 번째 인수 acViewPreview는 인쇄 미리 보기, 네 번째 인수는 WHERE 조건으로 지점이 '서울'인 레코드만 표시합니다. 바로 인쇄하려면 acViewNormal을 사용합니다.

출제: 상시 경향 모의고사 2회 54번

데이터베이스 일반상시 경향 모의고사 3회

Q9.Access 매크로 함수와 그 기능의 연결로 옳지 않은 것은?

  1. ①QuitAccess – 현재 열린 개체만 닫고 Access는 계속 실행 상태로 둔다.
  2. ②GoToControl – 현재 폼에서 지정한 컨트롤로 포커스를 이동한다.
  3. ③OpenReport – 보고서를 인쇄 미리 보기나 보고서 보기 등으로 연다.
  4. ④ApplyFilter – 테이블·폼·보고서에 필터나 WHERE 조건을 적용해 레코드를 제한한다.
정답과 해설 보기

정답: ① QuitAccess – 현재 열린 개체만 닫고 Access는 계속 실행 상태로 둔다.

QuitAccess는 Access 프로그램 자체를 종료합니다. 열린 개체만 닫는 매크로 함수는 CloseWindow입니다.

출제: 상시 경향 모의고사 3회 50번

데이터베이스 일반상시 경향 모의고사 3회

Q10.다음 VBA 코드에 대한 설명으로 옳은 것은?

Private Sub cmd조회_Click()
    DoCmd.OpenForm "사원정보", acNormal, , "부서 = '" & Me.txt부서 & "'"
End Sub
  1. ①'사원정보' 보고서를 인쇄 미리 보기로 연다.
  2. ②'사원정보' 폼을 디자인 보기로 연다.
  3. ③txt부서 값과 이름이 같은 저장된 필터(쿼리)를 적용하여 '사원정보' 폼을 연다.
  4. ④'사원정보' 폼을 폼 보기로 열고, 부서 필드 값이 txt부서 컨트롤 값과 같은 레코드만 표시한다.
정답과 해설 보기

정답: ④ '사원정보' 폼을 폼 보기로 열고, 부서 필드 값이 txt부서 컨트롤 값과 같은 레코드만 표시한다.

DoCmd.OpenForm의 인수는 (폼 이름, 보기 형식, 필터 이름, WHERE 조건) 순서입니다. acNormal은 폼 보기이고, 네 번째 인수가 WHERE 조건이므로 해당 부서 레코드만 표시됩니다. 세 번째 인수(필터 이름)는 생략되었습니다.

출제: 상시 경향 모의고사 3회 54번

데이터베이스 일반상시 경향 모의고사 4회

Q11.Access 매크로 함수 중 지정한 조건에 맞는 데이터 가운데 첫 번째 레코드를 찾아 이동하는 함수는?

  1. ①GoToRecord
  2. ②FindRecord
  3. ③ApplyFilter
  4. ④OpenQuery
정답과 해설 보기

정답: ② FindRecord

FindRecord는 조건에 맞는 첫 번째 레코드를 찾습니다. GoToRecord는 처음·마지막·다음·이전 등 지정한 위치의 레코드로 이동하고, ApplyFilter는 필터를 적용하며, OpenQuery는 쿼리를 엽니다.

출제: 상시 경향 모의고사 4회 49번

데이터베이스 일반상시 경향 모의고사 5회

Q12.Access의 매크로 함수에 대한 설명으로 옳지 않은 것은?

  1. ①OpenForm: 폼을 열며, 보기 형식이나 조건(Where 조건문)을 지정할 수 있다.
  2. ②GoToRecord: 처음, 이전, 다음, 마지막, 새 레코드 등 지정한 레코드로 이동한다.
  3. ③QuitAccess: 현재 열려 있는 폼만 닫고 Access는 계속 실행 상태로 둔다.
  4. ④MessageBox: 경고나 정보 등의 메시지가 들어 있는 메시지 상자를 표시한다.
정답과 해설 보기

정답: ③ QuitAccess: 현재 열려 있는 폼만 닫고 Access는 계속 실행 상태로 둔다.

QuitAccess는 Access 프로그램 자체를 종료합니다. 특정 폼이나 보고서 같은 개체만 닫을 때는 CloseWindow를 사용합니다.

출제: 상시 경향 모의고사 5회 49번

데이터베이스 일반상시 경향 모의고사 5회

Q13.다음 VBA 코드를 실행했을 때의 결과로 옳은 것은?

DoCmd.OpenReport "매출보고서", acViewPreview, , "지역 = '서울'"
  1. ①<매출보고서>의 모든 레코드를 프린터로 바로 인쇄한다.
  2. ②<매출보고서>를 디자인 보기로 열고 '지역' 필드를 서울로 변경한다.
  3. ③<매출보고서>를 인쇄 미리 보기로 열고 '지역'이 서울인 레코드만 표시한다.
  4. ④<매출보고서>를 인쇄 미리 보기로 열고 '지역'이 서울이 아닌 레코드만 표시한다.
정답과 해설 보기

정답: ③ <매출보고서>를 인쇄 미리 보기로 열고 '지역'이 서울인 레코드만 표시한다.

OpenReport의 인수는 보고서 이름, 보기 형식, 필터 이름, Where 조건 순서입니다. acViewPreview는 인쇄 미리 보기이고, 네 번째 인수의 조건에 맞는 레코드만 표시됩니다.

출제: 상시 경향 모의고사 5회 53번

데이터베이스 일반상시 경향 모의고사 5회

Q14.Access의 폼·컨트롤 이벤트에 대한 설명으로 옳지 않은 것은?

  1. ①AfterUpdate: 컨트롤의 값이 변경되어 저장되기 전에 발생하며, 이 이벤트에서 업데이트를 취소할 수 있다.
  2. ②Load: 폼이 열리고 레코드가 표시될 때 발생한다.
  3. ③Click: 컨트롤이나 폼에서 마우스 왼쪽 단추를 눌렀다 놓을 때 발생한다.
  4. ④GotFocus: 컨트롤이 포커스를 받을 때 발생한다.
정답과 해설 보기

정답: ① AfterUpdate: 컨트롤의 값이 변경되어 저장되기 전에 발생하며, 이 이벤트에서 업데이트를 취소할 수 있다.

업데이트되기 전에 발생해 Cancel로 취소할 수 있는 것은 BeforeUpdate입니다. AfterUpdate는 변경된 데이터가 업데이트된 후에 발생합니다.

출제: 상시 경향 모의고사 5회 60번

데이터베이스 일반실전 모의고사 1회

Q15.Access에서 지정한 SQL문을 실행하는 매크로 함수는?

  1. ①RunCode
  2. ②RunSQL
  3. ③OpenQuery
  4. ④RunMacro
정답과 해설 보기

정답: ② RunSQL

RunSQL은 SQL문을 실행합니다. RunCode는 프로시저, RunMacro는 매크로, OpenQuery는 쿼리를 엽니다.

출제: 실전 모의고사 1회 60번

데이터베이스 일반실전 모의고사 2회

Q16.Access의 이벤트 중 폼에서 포커스가 다른 레코드로 이동하여 그 레코드가 현재 레코드가 될 때 발생하는 이벤트는?

  1. ①On Current
  2. ②On Click
  3. ③After Insert
  4. ④On Change
정답과 해설 보기

정답: ① On Current

On Current는 현재 레코드가 바뀔 때, 폼을 열거나 새로 고칠 때 발생합니다.

출제: 실전 모의고사 2회 60번

데이터베이스 일반실전 모의고사 3회

Q17.Access 매크로에 대한 설명으로 옳지 않은 것은?

  1. ①매크로 이름을 AutoExec로 지정하면 데이터베이스를 열 때 자동으로 실행된다.
  2. ②Shift를 누른 채 데이터베이스를 열면 AutoExec 매크로가 실행되지 않는다.
  3. ③하나의 매크로에 여러 매크로 함수를 지정하면 아래에서 위 순서로 실행된다.
  4. ④조건에 맞을 때만 실행되도록 조건 매크로를 만들 수 있다.
정답과 해설 보기

정답: ③ 하나의 매크로에 여러 매크로 함수를 지정하면 아래에서 위 순서로 실행된다.

하나의 매크로에 지정한 여러 함수는 위에서 아래 순서로 실행됩니다.

출제: 실전 모의고사 3회 59번

데이터베이스 일반실전 모의고사 3회

Q18.Access의 Recordset 개체에서 레코드를 하나씩 이동하며 읽다가 마지막 레코드 뒤에 도달했는지 확인할 때 사용하는 속성은?

  1. ①BOF
  2. ②EOF
  3. ③RecordCount
  4. ④Bookmark
정답과 해설 보기

정답: ② EOF

EOF는 레코드 포인터가 마지막 레코드 뒤에 있으면 True가 됩니다.

출제: 실전 모의고사 3회 60번

데이터베이스 일반차시 확인문제

Q19.데이터베이스 파일을 열 때 자동으로 실행되는 매크로의 이름과, 자동 실행을 막는 방법을 바르게 짝지은 것은?

  1. ①AutoRun – Ctrl을 누른 채 열기
  2. ②AutoExec – Shift를 누른 채 열기
  3. ③AutoOpen – Alt를 누른 채 열기
  4. ④AutoStart – Esc를 누른 채 열기
정답과 해설 보기

정답: ② AutoExec – Shift를 누른 채 열기

AutoExec 매크로는 데이터베이스를 열 때 자동 실행되며, Shift를 누른 채 파일을 열면 실행되지 않습니다.

출처: 20차시 확인문제 1번

데이터베이스 일반차시 확인문제

Q20.다음 중 Access를 종료하는 매크로 함수는?

  1. ①CloseWindow
  2. ②QuitAccess
  3. ③CancelEvent
  4. ④RunApplication
정답과 해설 보기

정답: ② QuitAccess

QuitAccess는 Access를 종료합니다. CloseWindow는 개체 창을 닫고, CancelEvent는 이벤트를 취소하며, RunApplication은 다른 프로그램을 실행합니다.

출처: 20차시 확인문제 2번

데이터베이스 일반차시 확인문제

Q21.컨트롤이나 레코드의 변경된 데이터가 저장되기 전에 발생하여 입력 값을 검사하고 저장을 취소하는 데 주로 사용하는 이벤트는?

  1. ①AfterUpdate
  2. ②BeforeUpdate
  3. ③Current
  4. ④AfterInsert
정답과 해설 보기

정답: ② BeforeUpdate

BeforeUpdate는 데이터가 업데이트되기 전에 발생하므로 값 검사 후 Cancel로 저장을 막을 수 있습니다.

출처: 20차시 확인문제 3번

데이터베이스 일반차시 확인문제

Q22.Recordset 개체에서 현재 레코드 포인터가 마지막 레코드 뒤에 있음을 나타내는 속성은?

  1. ①BOF
  2. ②EOF
  3. ③RecordCount
  4. ④Fields
정답과 해설 보기

정답: ② EOF

EOF(End Of File)는 마지막 레코드 뒤, BOF(Beginning Of File)는 첫 레코드 앞에 있을 때 True입니다.

출처: 20차시 확인문제 4번

데이터베이스 일반차시 확인문제

Q23.VBA에서 <매출보고서>를 인쇄 미리 보기 형태로 여는 명령으로 옳은 것은?

  1. ①DoCmd.OpenReport "매출보고서", acViewPreview
  2. ②DoCmd.OpenForm "매출보고서", acViewPreview
  3. ③Forms.OpenReport "매출보고서", acViewNormal
  4. ④DoCmd.OpenReport "매출보고서", acViewNormal
정답과 해설 보기

정답: ① DoCmd.OpenReport "매출보고서", acViewPreview

보고서는 DoCmd.OpenReport로 열며, acViewPreview는 인쇄 미리 보기, acViewNormal은 바로 인쇄입니다.

출처: 20차시 확인문제 5번