Access 매크로
쉽게 말하면
Access 매크로는 '버튼을 누르면 주문 폼을 열고, 새 레코드로 가고, 안내 메시지를 띄워'처럼 할 일을 블록으로 쌓는 기능이에요. 코드를 쓰지 않고 목록에서 함수를 골라 인수만 채우면 돼요. 파일을 열자마자 실행되게 하려면 매크로 이름을 AutoExec으로 저장해요.
시험용 정의
매크로는 작업을 자동화하고 폼·보고서·컨트롤에 기능을 더하는 도구로, 매크로 함수(동작)와 그 수행 방식을 정하는 인수로 이루어진다. 한 매크로에 여러 함수를 순서대로 넣을 수 있고, 하위 매크로(이름 붙인 묶음)와 If 조건(조건이 참일 때만 실행)도 쓸 수 있다. 자주 나오는 함수는 OpenForm(폼 열기), OpenReport(보고서 열기·인쇄), OpenQuery(쿼리 열기), RunSQL(SQL 문 실행), RunMacro(다른 매크로 실행), GoToRecord(첫·이전·다음·마지막·새 레코드로 이동), GoToControl(컨트롤로 포커스 이동), FindRecord(조건에 맞는 첫 레코드 찾기), ApplyFilter(필터 적용), SetValue·SetProperty(값·속성 설정), MessageBox(메시지 상자), Beep, CloseWindow(창 닫기), QuitAccess(Access 끝내기)다. 매크로는 탐색 창의 매크로 개체로 저장하거나, 단추 On Click 같은 이벤트 속성에 포함된 매크로로 넣는다. 포함된 매크로는 탐색 창에 보이지 않는다. 이름이 AutoExec인 매크로는 데이터베이스를 열 때 자동 실행되며, Shift를 누른 채 열면 건너뛴다. 실행 중 Ctrl+Break를 누르면 한 단계씩 실행으로 바뀌어 흐름과 각 동작 정보를 확인할 수 있다.
비유로 이해하기
매크로는 리모컨의 '외출 모드' 버튼이다. 누르면 '불 끄기 → 보일러 낮추기 → 문 잠그기'가 차례로 실행된다. 각 동작(매크로 함수)은 정해져 있고, 우리는 어떤 방·몇 도(인수)인지만 정한다.
자세히
자주 나오는 매크로 함수
| 함수 | 하는 일 |
|---|---|
| OpenForm | 폼 열기 (보기 형식·조건 지정) |
| OpenReport | 보고서 열기·미리 보기·인쇄 |
| OpenQuery | 쿼리 열기 (실행 쿼리면 실행) |
| RunSQL | 실행 쿼리용 SQL 문 실행 |
| RunMacro | 다른 매크로 실행 |
| GoToRecord | 첫·이전·다음·마지막·새 레코드로 이동 |
| FindRecord | 조건에 맞는 첫 레코드 찾기 (값을 바꾸지 않음) |
| ApplyFilter | 테이블·폼·보고서에 필터 적용 |
| SetValue·SetProperty | 필드·컨트롤 값이나 속성 설정 |
| MessageBox | 경고·알림 메시지 상자 |
| CloseWindow | 창(폼·보고서 등) 닫기 |
| QuitAccess | Access 끝내기 |
매크로 규칙
- 한 매크로에 여러 함수, 하위 매크로, If 조건을 넣을 수 있다
- 폼·보고서·컨트롤 이벤트에 연결하거나 탐색 창에서 바로 실행한다 (폼에서만 쓰는 것이 아님)
- 이벤트 속성에 포함된 매크로는 탐색 창에 나오지 않는다
- 같은 동작을 반복하려면 매크로 동작을 복사해 붙여 넣는다
- AutoExec: 열 때 자동 실행, Shift를 누르고 열면 건너뜀
- Ctrl+Break: 실행 중 한 단계씩 실행으로 전환
매크로와 모듈
| 매크로 | 모듈(VBA) | |
|---|---|---|
| 만드는 법 | 함수를 골라 인수 입력 | 코드를 직접 작성 |
| 난이도 | 쉽다 | 어렵다 |
| 할 수 있는 일 | 정해진 함수 범위 안 | 복잡한 계산·반복·오류 처리 |
시험에 이렇게 나와요
- 매크로 → 작업 자동화, 폼·보고서·컨트롤에 기능 추가
- 한 매크로에 여러 함수·하위 매크로·조건 가능, 폼 밖에서도 사용
- OpenForm 폼 열기, OpenReport 보고서, ApplyFilter 필터, MessageBox 메시지
- FindRecord → 레코드 찾기 (값 설정은 SetValue·SetProperty)
- AutoExec 건너뛰기 → Shift, 한 단계씩 실행 → Ctrl+Break
- 포함된 매크로는 탐색 창에 표시되지 않음
확인 문제
Q1. 폼을 폼 보기·디자인 보기·데이터시트 보기 등으로 여는 매크로 함수는?
- RunSQL
- RunMacro
- RunCommand
- OpenForm
정답 보기
4번 OpenForm
OpenForm은 폼 이름과 보기 형식, 조건을 인수로 받아 폼을 연다. RunSQL은 실행 쿼리용 SQL 문을 실행한다.
Q2. [주문] 폼에서 '상태'가 "취소"인 레코드만 보이게 하는 매크로 함수는?
- OpenQuery
- FindRecord
- GoToRecord
- ApplyFilter
정답 보기
4번 ApplyFilter
ApplyFilter는 조건에 맞는 레코드만 보이게 필터를 건다. FindRecord는 맞는 첫 레코드로 이동할 뿐이다.
Q3. 데이터베이스를 열 때 자동 실행 매크로가 실행되지 않게 하려면?
- Alt를 누른 채 연다
- F11을 누른 채 연다
- Shift를 누른 채 연다
- Ctrl을 누른 채 연다
정답 보기
3번 Shift를 누른 채 연다
Shift를 누른 채 열면 AutoExec 매크로를 건너뛴다.
Q4. Access 매크로에 대한 설명으로 옳지 않은 것은?
- 매크로 하나에는 매크로 함수 하나만 넣을 수 있다
- 조건이 참일 때만 함수를 실행하게 할 수 있다
- 컨트롤의 이벤트 속성에 매크로를 넣을 수 있다
- 하위 매크로를 둘 수 있다
정답 보기
1번 매크로 하나에는 매크로 함수 하나만 넣을 수 있다
한 매크로에 여러 함수를 순서대로 넣을 수 있다.
Q5. 다음 중 필드나 컨트롤의 값을 바꾸는 매크로 함수는?
- FindRecord
- MessageBox
- SetValue
- OpenReport
정답 보기
3번 SetValue
FindRecord는 레코드를 찾을 뿐 값을 바꾸지 않는다.
헷갈리기 쉬운 O·X
매크로는 폼 개체 안에서만 사용할 수 있다.
정답 보기
X 보고서·컨트롤 이벤트나 탐색 창, AutoExec 등 여러 곳에서 쓴다.
매크로 실행 중 Ctrl+Break를 누르면 한 단계씩 실행할 수 있다.
정답 보기
O 실행을 멈추고 단계별로 흐름을 확인하는 모드로 바뀐다.