매크로 및 프로그래밍 (VBA)

by 김현석

매크로 및 프로그래밍 (VBA)

매크로의 개념

- 엑세스의 매크로 함수를 이용하여, 엑세스의 작업을 자동화 하는 기능 (주로 컨트롤에 매크로 기능을 추가하여 사용)

- 하나의 매크로는 여러 개의 매크로 함수를 포함 할 수 있다.

- 하나의 매크로에 여러 개의 하위 매크로를 포함할 수 있다

- 매크로를 컨트롤의 이벤트 속성에 포함시킬 수 있다.

- 매크로를 한단계씩 이동하면서 매크로의 흐름과 각 동작에 대한 정보를 확인할 수 있다.

- access의 매크로는 작업을 자동화하고 양식, 보고서 및 컨트롤에 기능을 추가하 수 있게 해주는 도구이다.

- 이미 매크로에 추가한 작업을 반복해야 하는 경우 매크로 동작을 복사하여 붙여 넣으면 된다.

- 매크로 함수 또는 매크로 함수 집합으로 구성되며, 각 매크로 함수의 수행 방식을 제어하는 인수를 추가할 수 있다.

- 매크로를 이용해 폼을 열고 닫거나 메세지 박스를 표시할 수 있다.

- 매크로는 주로 컨트롤의 이벤트에 연결하여 사용하며, 폼과 보고서에서도 매크로를 사용할 수 있다.

매크로 함수

applyfilter: 테이블이나 쿼리로부터 레코드를 필터링한다.

findrecord: 지정한 조건에 맞는 첫번째 레코드를 검색한다.

findnextrecord: 지정한 조건에 의해 찾아진 레코드의 다음에 위치하는 것에 의한 레코드를 검색한다.

gotocontrol: 커서를 특정한 컨트롤로 이동시킨다.

gotopage: 커서를 지정한 페이지의 첫번째 컨트롤로 이동시킨다.

runmenucommand: 액세스 내부에서 제공하는 명령을 실행시킨다. (메뉴에 있는 명령을 실행)

openform: 폼을 폼보기, 디자인 보기, 인쇄 미리보기, 데이터시브 보기 등으로 열어준다.

openreport: 보고서를 데이터시트 보기, 디자인 보기, 인쇄 미리보기 등을 열어준다

runmacro: 매크로를 실행한다.

runapplication: 응용 프로그램을 실행한다.

runSQL: SQL문을 실행한다.

cancelevent: 이벤트를 취소한다.

requery: 데이터를 수정, 삭제, 추가할 경ㅇ우 원본 데이터로 재설정한다.

exportwithformatting: 데이터베이스 개체를 엑셀, 텍스트 등으로 내보내기 한다.

messagebox: 메시지 상자를 표시한다.

이벤트프로시저

afterupdate: 컨트롤이나 레코드의 데이터가 업데이트 된 후에 이벤트가 발생한다.

beforupdate: 컨트롤이나 레코드의 데이터가 업데이트 되기 전에 이벤트가 발생한다.

click: 마우스 왼쪽을 클릭할 때 이벤트가 발생한다.

dblclick: 마우스 왼쪽을 두번 클릭할 때 이벤트가 발생한다.

gotfocus: 폼이나 컨트롤에 포커스가 받을 때 이벤트가 발생한다.

ex. VBA 모듈에서 선택 쿼리를 데이터시트 보기, 디자인 보기, 인쇄미리보기 등으로 열기 위해 사용하는 메서드

-> DoCmd.OpenQuery

*Me: 현재개체 (지금 작업하고 있는 쿼리나 보고서)

*DoCmd: 외부개체 (뭐 예를 들면 다른 쿼리나 보고서)

ex. 폼을 디자인 보기나 데이터시트 보기로 열기 위해 사용하는 매크로 함수

-> OpenForm

********acViewDesign: 디자인보기로 열어라

********acviewPreview: 인쇄 미리보기로 열어라

- 개체명과 컨트롤명은 느낌표로 구분

- 컨트롤에 속성을 지정할 때는 마침효로 연결

ex. 현재 폼에서 cmd숨기기 단추를 클릭하는 경우 datedue 컨트롤이 표시되지 않도록 하기 위한 이벤트 프로시저

private sub cmd숨기기_click()

me![datedue].visable=false

end sub

ex. command1단추를 누루면 [사원정보] 폼이 열리고, 새 레코드를 입력할 수 있도록 비워진 폼이 표시된다.

private sub command1_click()

docmd.openform "사원정보", acnormal

docmd.gotorecord, ,acnewrec --------> 빈칸은 현재 개체라는 뜻

endsub

* acfirst: 첫 번째 레코드가 열림

* aclast: 마지막 레코드가 열림

* dim: 정의한다

* i : 변수

* num:변수

* for: 대표적인 반복문

Dim i As Integer

Dim Num As Integer

For i = 0 To 7 Step 2 -> 2단계 씩 증가해라 (0이 7까지 2씩 증가하면서, 이 조건이 만족 될때까지 반복해라)

Num = Num + i

Next i

MsgBox Str(Num)

iNum

00

22

46

612

---------------------------------> 12


keyword
작가의 이전글보고서