매크로 및 프로그래밍 (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