에너지 관점 스터디:에관스

컴활 1급 · 프로시저 이벤트

컴활 1급 프로시저 이벤트는 버튼·폼 열기·레코드 이동·값 변경 시점으로 구분합니다

두음 암기는 '클버로열커레애변'입니다. Click은 버튼, Load는 폼 열기, Current는 현재 레코드, AfterUpdate는 값 변경 뒤에 실행됩니다.

외우기용 문장은 '클릭 버스를 누르자 로딩 문이 열리고, 커서가 레코드로 가면 애프터에 값이 변한다'입니다. 시험장에서는 버튼 동작, 폼 최초 열기, 레코드 이동·새로 고침, 데이터 변경 완료의 네 시점으로 바꾸세요.

결론부터 말하면 명령 단추를 누를 때는 Click, 폼이 열리고 레코드가 표시될 때는 Load, 다른 레코드가 현재 레코드가 될 때는 Current, 컨트롤이나 레코드의 변경값이 갱신된 뒤에는 AfterUpdate를 고릅니다. 코드보다 먼저 '언제 실행되는가'를 한 문장으로 바꾸면 이벤트가 빠르게 갈립니다.

컴활 1급 Access 프로시저의 Click Load Current AfterUpdate 이벤트를 실행 시점으로 구분한 인포그래픽
명령 단추는 Click, 폼 열기는 Load, 현재 레코드 이동은 Current, 데이터 변경 뒤에는 AfterUpdate로 실행 시점을 구분합니다.
작성에관스 컴활 1급 학습팀 발행2026년 8월 2일 수정2026년 8월 22일 주제프로시저 이벤트

핵심 포인트

이 글에서 먼저 챙길 것

  • Click은 사용자가 명령 단추를 선택했을 때 실행하는 동작에 연결합니다.
  • Load는 폼을 열어 레코드가 표시될 때 실행하며 한 번의 폼 열기에서 초기 설정을 맡기 좋습니다.
  • Current는 현재 레코드가 바뀌거나 폼이 새로 고쳐지고 다시 질의될 때 실행됩니다.
  • AfterUpdate는 데이터가 실제로 변경되어 갱신된 뒤 실행하며 컨트롤 이벤트와 폼 이벤트의 대상을 구분해야 합니다.

본문

컴활 1급 공부 기준을 더 구체적으로 보기

이 글이 필요한 사람

컴활 1급 프로시저에서 코드는 어느 정도 읽지만 On Click, On Load, On Current, After Update 중 어디에 넣어야 하는지 헷갈리는 사람에게 맞는 글입니다.

기존 프로시저 가이드는 개체·이벤트·값·조건·검토의 전체 풀이 순서를 맡습니다. 이 글은 그중 Access 폼과 명령 단추에서 Click·Load·Current·AfterUpdate를 실행 시점으로 가르는 하위 의도만 담당합니다.

두음 암기부터 잡으세요: 클버로열커레애변

'클버로열커레애변'은 Click 버튼, Load 열기, Current 레코드, AfterUpdate 변경의 앞글자를 붙인 암기어입니다. 지시문의 동작 시점을 네 칸에 넣는 데 씁니다.

재미 문장은 '클릭 버스를 누르자 로딩 문이 열리고, 커서가 레코드로 가면 애프터에 값이 변한다'입니다. 문장은 기억용이고 실제 문제에서는 '버튼 -> Click, 폼 열기 -> Load, 레코드 이동 -> Current, 입력값 갱신 뒤 -> AfterUpdate'로 번역해야 합니다.

이벤트 이름부터 외우지 말고 지시문의 시간 표현에 표시하세요. '클릭하면', '폼을 열면', '레코드를 이동하면', '값을 입력한 후'가 각각 가장 강한 단서입니다.

이벤트 선택은 코드를 쓰기 전 실행 시점을 찾는 일입니다

프로시저 문제에서 이벤트는 코드가 실행되는 출발점입니다. 같은 코드라도 버튼을 누를 때 실행할지, 폼을 열 때 실행할지, 레코드가 바뀔 때 실행할지에 따라 들어갈 이벤트가 달라집니다.

지시문을 읽으면 먼저 개체와 시점을 분리하세요. 명령 단추인지 폼인지, 특정 컨트롤인지 표시한 뒤 그 개체에서 언제 동작해야 하는지 한 문장으로 적습니다.

Microsoft Access 문서는 이벤트 속성을 [Event Procedure]로 설정하고 해당 이벤트 프로시저를 작성하는 흐름을 안내합니다. 시험 연습에서도 속성 시트의 이벤트와 코드 창의 프로시저 이름이 서로 맞는지 함께 확인해야 합니다.

복잡한 대입식이나 조건문은 이벤트를 정한 뒤에 붙이세요. 출발점을 잘못 잡으면 코드 내용이 맞아도 원하는 순간에 실행되지 않습니다.

Click은 명령 단추를 선택했을 때 실행합니다

Microsoft Learn의 CommandButton.Click 설명처럼 Click 이벤트는 사용자가 명령 단추를 선택할 때 발생합니다. 조회, 저장, 닫기, 출력처럼 버튼을 눌러 시작하는 동작의 출발점입니다.

예를 들어 '조회 단추를 클릭하면 조건에 맞는 레코드를 표시하시오'라는 지시문이면 조회 단추의 On Click 속성과 Click 이벤트 프로시저를 먼저 찾습니다.

코드 창의 기본 껍데기는 Private Sub 단추이름_Click() 형태입니다. 단추 이름을 지시문의 캡션과 혼동하지 말고 실제 개체 이름을 확인해야 합니다.

텍스트 상자의 값이 바뀌었다는 이유만으로 Click을 고르지 마세요. 사용자가 명령 단추를 선택한 것이 실행 조건일 때 Click입니다.

Load는 폼이 열리고 레코드가 표시될 때 실행합니다

Microsoft Learn의 Form.Load 문서는 폼이 열리고 그 레코드가 표시될 때 Load 이벤트가 발생한다고 설명합니다. 폼을 한 번 열 때 필요한 초기 설정을 두는 기준입니다.

폼 제목 설정, 기본 안내 표시, 폼이 처음 나타날 때 필요한 초기 동작처럼 '폼을 열면' 한 번 실행해야 하는 지시문을 Load에 연결합니다.

폼 이벤트 프로시저의 이름은 Private Sub Form_Load()입니다. 특정 명령 단추 이름을 붙이는 Click과 달리 폼 자체의 Load이므로 Form_Load라는 껍데기를 확인하세요.

Microsoft가 안내한 폼 최초 열기 순서에는 Open 뒤 Load가 있고, 이후 Current가 이어집니다. 처음 화면에 나타난다는 이유만으로 Load와 Current를 같은 이벤트로 보지 마세요.

Current는 현재 레코드가 바뀔 때마다 실행합니다

Form.Current 이벤트는 포커스가 다른 레코드로 이동해 그 레코드가 현재 레코드가 될 때 발생합니다. 폼을 새로 고치거나 다시 질의할 때도 현재 레코드에 맞춰 실행될 수 있습니다.

레코드마다 값이나 버튼 상태를 다르게 표시하거나, 현재 레코드의 조건에 따라 컨트롤을 잠그는 동작처럼 '현재 보고 있는 레코드'에 따라 반복해서 바뀌어야 하는 지시문을 Current에 둡니다.

프로시저 이름은 Private Sub Form_Current()입니다. 처음 폼을 열 때도 첫 레코드가 현재 레코드가 되므로 Load 뒤 Current가 발생하지만, 레코드를 이동할 때 다시 발생한다는 점이 Load와 가장 큰 차이입니다.

'폼을 열 때 한 번'이면 Load, '레코드를 넘길 때마다 현재 값에 맞게'이면 Current라고 시간 범위를 비교하세요.

AfterUpdate는 데이터가 변경되어 갱신된 뒤 실행합니다

Microsoft Learn의 AfterUpdate 설명은 컨트롤이나 레코드의 변경된 데이터가 갱신된 뒤 이벤트가 발생한다고 안내합니다. 단순히 포커스가 갔다고 실행되는 것이 아니라 값 변경이 핵심입니다.

예를 들어 특정 텍스트 상자 값을 입력한 뒤 다른 계산값을 표시해야 한다면 그 컨트롤의 After Update를 검토합니다. 한 레코드의 변경 내용을 저장한 뒤 처리할 동작이라면 폼의 After Update를 봅니다.

컨트롤 AfterUpdate와 폼 AfterUpdate는 대상이 다릅니다. Microsoft 문서가 안내하는 순서에서는 컨트롤의 AfterUpdate가 먼저, 폼의 AfterUpdate가 뒤에 발생합니다.

프로시저 이름도 대상에 따라 달라집니다. 특정 컨트롤이면 Private Sub 컨트롤이름_AfterUpdate(), 폼이면 Private Sub Form_AfterUpdate()입니다.

Load·Current와 Click·AfterUpdate의 경계를 이렇게 가릅니다

Load와 Current는 폼을 처음 열 때 연이어 발생할 수 있어 가장 많이 섞입니다. 초기화가 한 번이면 Load, 첫 레코드를 포함해 레코드가 바뀔 때마다 다시 계산해야 하면 Current입니다.

Click과 AfterUpdate도 사용자의 행동 뒤에 발생한다는 점은 같지만 출발 개체가 다릅니다. 명령 단추 선택이 조건이면 Click이고, 입력 컨트롤이나 레코드의 값 변경 완료가 조건이면 AfterUpdate입니다.

Current와 AfterUpdate는 둘 다 레코드와 관련될 수 있습니다. 현재 레코드가 바뀌는 것이 조건이면 Current, 같은 레코드의 데이터가 수정되어 저장되는 것이 조건이면 AfterUpdate입니다.

지시문에서 '처음', '이동할 때마다', '단추를 클릭하면', '값을 입력한 후' 같은 시간 부사를 동그라미 치면 이벤트 이름을 암기하는 부담이 줄어듭니다.

프로시저 연결과 검토는 네 단계로 끝내세요

첫째, 지시문의 개체가 명령 단추, 폼, 특정 컨트롤 중 무엇인지 표시합니다. 둘째, 버튼 선택·폼 열기·레코드 이동·값 변경 후 중 실행 시점을 한 칸에 넣습니다.

셋째, 속성 시트에서 On Click, On Load, On Current, After Update 중 맞는 항목이 [Event Procedure]로 연결되었는지 봅니다. 넷째, 코드 창의 단추이름_Click, Form_Load, Form_Current, 컨트롤이름_AfterUpdate 껍데기가 대상과 맞는지 확인합니다.

그다음에야 값의 출발지와 도착지, 조건문, 메시지 같은 코드 내용을 채웁니다. 마지막 실행 확인에서는 폼을 다시 열어 볼지, 레코드를 넘길지, 값을 실제로 바꿀지처럼 이벤트에 맞는 테스트 동작을 해야 합니다.

코드 줄만 읽고 끝내지 마세요. 이벤트 속성, 프로시저 이름, 실제 실행 시점 세 가지가 모두 맞아야 지시한 순간에 동작합니다.

시험 직전에는 5줄만 남기세요

첫째, 두음 암기는 '클버로열커레애변'입니다. 둘째, 명령 단추를 선택하면 Click입니다.

셋째, 폼을 열고 레코드를 표시하면 Load입니다. 넷째, 현재 레코드가 바뀌거나 새로 고쳐지면 Current입니다.

다섯째, 데이터가 실제로 변경되어 갱신된 뒤에는 AfterUpdate이며, 특정 컨트롤과 폼 중 어느 대상의 이벤트인지까지 확인합니다.

FAQ

자주 묻는 질문

Form_Load와 Form_Current의 차이는 무엇인가요?

Form_Load는 폼을 열고 레코드가 표시될 때의 초기 실행이고, Form_Current는 첫 레코드를 포함해 현재 레코드가 바뀌거나 폼이 새로 고쳐지고 다시 질의될 때 실행됩니다.

명령 단추를 눌렀을 때 실행할 이벤트는 무엇인가요?

명령 단추의 On Click 속성에 연결하는 Click 이벤트입니다. 프로시저 이름은 일반적으로 Private Sub 단추이름_Click() 형태입니다.

AfterUpdate는 컨트롤과 폼 중 어디에 써야 하나요?

특정 입력 컨트롤의 값이 바뀐 직후 처리하면 그 컨트롤의 AfterUpdate를, 레코드 전체의 변경 내용이 갱신된 뒤 처리하면 폼의 AfterUpdate를 검토합니다.

이벤트 프로시저를 작성했는데 실행되지 않는 이유는 무엇인가요?

속성 시트의 해당 이벤트가 [Event Procedure]로 연결되었는지, 프로시저 이름의 개체와 이벤트가 맞는지, 테스트할 때 실제로 그 이벤트를 발생시켰는지부터 확인하세요.