1- 매크로 1) 매크로의정의 폼열기나보고서인쇄와같이특별한기능을수행하는하나이상의집합 매크로를사용하면일반적인작업을자동화할수있음 반복적인작업에서간편화를위해그작업순서를하나의명령어로저장 매크로는일련의로구성된하나의매크로일수도있고, 매크로그룹일수도있으며, 조건식을사용하여특정상황에서만매크로가실행될때가수행되게할수도있음 데이터베이스파일이열릴때자동으로매크로를실행하려면 AutoExec' 를입력 자동으로매크로실행하지않을땐 [Shift] 누르고데이터베이스파일을연다. 메뉴-[ 도구 ]-[ 매크로 ]-[ 매크로 Visual Basic으로변환 ] 으로작성된매크로를 VBA모듈로변환가능 의인수 매크로에를추가하면매크로창의아래쪽부분에서인수를설정해야하며, 인수는실행에필요한추가적인정보를제공함 ( 인수를반드시지정할필요는없음 ) 인수상자에값을직접입력할수도있지만대부분의경우목록에서설정값을선택함 일반적으로앞의인수를설정함에따라다음에오는인수의설정이결정될수도있으므로목록에나와있는순서대로인수를설정하는것이좋음 데이터베이스창에서데이터베이스개체를끌어를추가하면해당에대한인수가자동으로설정 앞에등호 (=) 를붙이고식을사용하여여러개의인수를한꺼번에설정할수있음 2) 매크로종류 1 일반매크로 하나의로구성 2 그룹매크로 여러매크로가있을때관련매크로를하나의매크로그룹으로그룹화하면데이터베이스를좀더쉽게관리가능 매크로이름열에있는이름은각각의매크로를표시 그룹매크로를실행시가장먼저지정한맨위의매크로만실행 엠엔디시스템 (http://mndsystem.tistory.com) 1/8
매크로그룹의매크로를실행하려면마침표뒤에매크로이름을붙인매크로그룹이름을사용 3 조건매크로 IF조건문과같이조건에따라매크로가실행 매크로창의조건열에조건을입력 조건열생략기호 (...) 하나의조건을여러개의에적용시사용 2- 매크로실행 1) 직접실행 방법 : 매크로창에서매크로를실행하려면도구모음에서실행아이콘 ( ) 을클릭 방법 : 데이터베이스창에서매크로를실행하려면매크로 ( ) 를누른다음매크로이름을두번클릭 방법 : Microsoft Access 내의다른장소에서매크로를실행하려면 [ 도구 ]-[ 매크로 ]-[ 매크로실행 ] 클릭 매크로이름상자에서매크로를선택 2) 키에매크로할당 기능키나키조합을누르면가실행되는것으로특정키를사용하여매크로실행 방법 1 데이터베이스창에서개체아래에있는매크로 ( ) 를클릭 2 새로만들기를클릭 3 도구모음에서매크로이름 ( ) 을클릭 4 매크로이름행에를할당할키나키조합을입력 5 매크로그룹을 AutoKeys라는이름으로저장 새로운키를할당시매크로그룹을저장한다음부터적용되며데이터베이스를열때마다작동 복사기능인 Ctrl+C 처럼 Access 에서이미사용되는키조합에새로운키를할당하면기존기능이무시됨 3) 폼, 보고서, 컨트롤의이벤트에응답하는매크로나이벤트프로시저실행 Microsoft Access는마우스누르기나데이터변경, 폼이나보고서열기와닫기등폼이나보고서컨트롤의다양한이벤트에응답 방법 1 폼이나보고서를디자인보기로연다. 엠엔디시스템 (http://mndsystem.tistory.com) 2/8
2 매크로를만들거나해당이벤트에 Visual Basic 코드를추가 3 폼이나보고서, 컨트롤의해당이벤트속성을매크로이름으로설정하며이벤트프로시저를사용하려면이벤트프로시저로설정예를들어, 명령단추를누를때메시지를표시하는매크로나이벤트프로시저를만들수있음 4) 자동실행 매크로이름을 AutoExec 로저장할경우데이터베이스파일이열릴때자동으로매크로가실행됨 매크로를자동으로실행하지않으려할경우 [Shift] 를누르고데이터베이스파일을열면됨 5) 사용자도구모음에연결 작성된매크로를도구모음줄에등록하여실행할수있음 메뉴 -[ 도구 ]-[ 사용자정의 ] 3-1) 폼, 보고서관련 ApplyFilter 테이블이나쿼리로부터지정한조건에맞는레코드를찾음 FindRecord 특정한조건에맞는첫번째레코드를검색 RunCommand 액세스내부에서제공하는명령실행 GoToControl 활성화된폼에서커서를특정한컨트롤로이동시킴 GoToPage 현재폼에서커서를지정한페이지의첫번째컨트롤로이동시킴 GoToRecord 레코드포인터를이동시킴 2) 실행관련 RunSQL SQL 문을실행 OpenQuery 질의 ( 쿼리 ) 를실행 RunMacro 매크로실행 RunApp 메모장, 엑셀등의응용프로그램실행 RunCode 프로시저실행 RunCommand 액세스내부에서제공하는명령실행 CancelEvent 이벤트취소 3) 가져오기 / 내보내기관련 OutputTo 데이터베이스개체를엑셀, 텍스트등의다른파일형식으로내보내기함 SendObject 데이터베이스개체를전자우편메시지에첨부하여발송 TransferDatabase 다른데이터베이스파일과의내보내기, 가져오기, 연결등을지원 TransferText 텍스트파일과의내보내기, 가져오기, 연결등을지원 엠엔디시스템 (http://mndsystem.tistory.com) 3/8
4) 개체조작관련 OpenForm 폼열기 ( 폼보기, 데이터시트보기, 인쇄미리보기, 디자인보기 ) Close 폼이나테이블, 쿼리등활성화되어있는데이터베이스개체를닫음 OpenQuery 작성된쿼리를불러서실행 ( 데이터시트보기, 인쇄미리보기, 디자인보기 ) OpenReport 작성된보고서를불러서실행 ( 인쇄, 인쇄미리보기, 디자인보기 ) Requery 개체의컨트롤원본을갱신함 Printout 개체인쇄 CopyObject 데이터베이스개체를다른액세스데이터베이스나현재데이터베이스에새이름으로복사 Save 개체저장 SetValue 필드, 컨트롤, 속성등의값을설정 5) 기타 MsgBox 경고나메시지를포함하는메시지상자를나타냄 Beep 경고음을냄 4- 이벤트프로시저 이벤트프로시저는데이터베이스의특정개체에설정된이벤트가발생할때자동으로수행되는프로시저를말함 1) 데이터이벤트 폼이나컨트롤에서데이터를입력, 삭제, 변경하거나한레코드에서다른레코드로포커스이동시발생 Current On Current 포커스가임의로레코드로이동되어그레코드가현재레코드가되거나폼이새로고쳐지거나다시질의될때발생 Change On Change 입력란의내용이나콤보상자의텍스트부분이바뀔때탭컨트롤에서다른페이지로이동할때발생 Delete On Delete 레코드를삭제할때, 삭제를확인해서실제로삭제되기전에발생 AfterUpdate After Update 컨트롤이나레코드의데이터가업데이트된후에발생 BeforeUpdate Before Update 컨트롤이나레코드의변경된데이터가업데이트되기전에발생 AfterInsert After Insert 새레코드가추가된후에발생 BeforeInsert Before Insert 새레코드에첫문자를입력할때 ( 레코드가실제로만들어지기전 ) 발생 2) 키보드이벤트 키보드로입력하거나 SendKeys 나 SendKeys 문을사용해서키입력이전달될때발생 엠엔디시스템 (http://mndsystem.tistory.com) 4/8
KeyDown On Key Down 컨트롤이나폼이포커스를가지고있는동안임의의키를누르면발생 KeyPress On key Press 컨트롤이나폼이포커스를가지고있을때표준 ANSI문자에해당하는키나키조합을누르면발생 Key UP On Key Up 컨트롤이나폼이포커스를가지고있는동안누르고있던키를놓을때발생 3) 마우스이벤트 마우스단추를누르고있거나클릭하는등의마우스동작이일어날때발생 Click On Click 컨트롤을마우스왼쪽단추로클릭하거나폼에서컨트롤의바깥쪽을클릭할경우발생 DblClick On Dbl Click 컨트롤을마우스왼쪽단추로두번클릭할때발생 MouseDown On Mouse Down 포인터가폼이나컨트롤에있는동안마우스단추를누를때발생 MouseMove On Mouse Move 마우스포인터를폼, 폼영역, 컨트롤등으로이동시킬때발생 Mouseup On Mouse Up 포인터가폼이나컨트롤에있는동안누르고있던마우스단추를놓을때발생 4) 인쇄이벤트 보고서가인쇄중이거나서식설정중일때발생 Format On Format 보고서의한구역에어떤데이터가들어갈것인지결정할때, 미리보기나인쇄서식을설정하기전에발생 Print On Print 보고서구역의데이터를서식설정한후그구역이인쇄되기전에발생 Page On Page 인쇄를위해페이지의서식을설정한후, 페이지가인쇄되기전에발생 5) 창이벤트 폼이나보고서를열거나닫을때또는크기조정시발생 Close On Close 폼이나보고서를닫아화면에서사라질때발생 Load On Load 폼을열어레코드들이표시될때발생하며, 이이벤트는 Current이벤트전에발생하고 Open이벤트후에발생 UnLoad On Unload 폼이닫히고레코드가언로드될때, 이폼이화면에서사라지기전에발생하며, 이이벤트는 Close이벤트전에발생 6) 포커스이벤트 폼이나컨트롤이포커스를얻거나잃을때, 폼이나보고서가활성화되거나비활성화될때발생이벤트이벤트속성 Active On Active 폼이나보고서가활성화될때발생 Enter On Enter 폼의다른컨트롤에서특정컨트롤로포커스가실제로옮겨지기전이나폼을 열때발생 Exit On Exit 같은폼에서한컨트롤이다른컨트롤로포커스를잃기전에발생 7) 오류와타이밍이벤트 엠엔디시스템 (http://mndsystem.tistory.com) 5/8
폼이나보고서에서오류를처리하고데이터를동기화하는데사용 Error On Error 폼이나보고서사용중에런타임오류가발생할때이벤트발생 Timer On Timer 폼의 TimerInterval속성에의해지정된시간간격이경과할때발생 5-ACCESS 개체 1)Application 개체 현재 Microsoft Access 응용프로그램자체를의미 Microsoft Access 개체와컬렉션 ( 관련개체의집합을포함하는개체 ) 모두들어있음 Application개체를사용해메서드 ( 개체에서또는개체를가지고수행할수있는작업 ) 나속성설정시 Microsoft Access 응용프로그램전체에적용됨 CurrentData 현재데이터베이스에저장된개체를참조 CurrentProject 현재 Access프로젝트나 Access 데이터베이스에대한프로젝트참조 Docmd 개체와이와관련된메서드를참조하거나실행 Name 개체의이름을나타내는문자열식을지정 Quit Access를종료 Run 사용자정의 Function 또는 Sub프로시저를수행 2)Form(Forms 컬렉션 ) 개체 현재 Microsoft Access 데이터베이스에열려있는모든폼 이름이나컬렉션내의인덱스를참조하여각 Form개체를참조함 RecordSource 폼의데이터원본을지정 RecordsetClone 폼의 RecordSource속성으로지정된 Recordset개체를참조 Requery 데이터원본을다시쿼리하여데이터를업데이트함 Undo 값이변경된컨트롤이나폼을원래대로되돌림 3)Report(Reports 컬렉션 ) 개체 Report는보고서를의미 Microsoft Access 데이터베이스에현재열려있는모든보고서를포함 이름이나컬렉션내의인덱스를참조하여각 Report 개체를참조함 Visible 폼, 보고서, 데이터액세스페이지, 컨트롤등의표시여부지정 Page, Pages 페이지번호, 전체페이지정보를반환 4) 컨트롤 (Controls 컬렉션 ) 개체 컨트롤을폼, 보고서, 데이터액세스페이지에위치시킬수있는입력란, 확인란, 명령단추등을말한다. 엠엔디시스템 (http://mndsystem.tistory.com) 6/8
폼, 보고서, 또는다른컨트롤내에있거나연결된모든컨트롤을포함함 ItemData 콤보상자나목록상자에지정된행에대한바운드열의데이터를반환함 ItemSelected 여러개를선택할수있는목록상자컨트롤에서선택된행의데이터를액세스함 Requery 원본데이터를다시읽어갱신함 SetFocus 포커스를지정된컨트롤로옮김 Undo 변경된값을원래대로되돌림 5)Docmd 개체 Microsoft Access 를 Visual Basic에서실행하기위한개체 메서드를이용하여매크로실행 1 주요메서드 OpenReport OpenReport를수행함 OpenForm OpenForm를수행함 RunSQL RunSQL를수행함 RunMacro RunMacro를수행함 GotoRecord GotoRecord를수행함 GotoControl GotoControl를수행함 Quit Quit를수행함 해당하는 DoCmd 메서드가없는 AddMenu, MsgBox, RunApp, RunCode, SendKeys, SetValue 할당문, StopAllMacros, 6) CurrentProject 개체 현재 Microsoft Access 프로젝트나 Access 데이터베이스에대한프로젝트를의미 7) CurrentData 개체 서버응용프로그램에의해현재데이터베이스에저장된개체를의미 6- 데이터접근개체 1)AOD(Active Data Object) OLE DB공급자를통해, 데이터베이스서버에있는데이터에액세스하여조작할수있는응용프로그램을작성할수있음 장점 : 사용의용이성, 빠른속도, 적은메모리오버헤드, 적은디스크공간차지등 ASP를이용하여웹사이트를개발할수도있음 레코드의수정, 추가, 삭제등편집작업을할수있음 데이터베이스에포함된각종개체를열수있음 2)Connection 개체 데이터원본에대해열려있는연결을나타냄 데이터원본을사용하는고유세션을나타냄 Connection개체변수를선언할때 New키워드를함께선언하여개체변수를선언하면서개체인스턴스를만들수있음 엠엔디시스템 (http://mndsystem.tistory.com) 7/8
ConnectionString 데이터원본에연결을구성하는데사용되는문자열을반환 State 사용할수있는개체의상태 ( 열림, 닫힘 ) 을알려줌 Mode 지정된개체의수정권한을나타냄 DefaultDatabase 연결할기본데이터베이스를설정함 Open 연결된데이터원본열기 Close 열려있는개체와관련된개체모두닫음 Execute 질의, SQL문, 저장프로시저등을실행 Save Recordset을파일에저장 3)Recordset 개체 기본테이블이나실행된명령결과로부터얻어진데이터를임시로저장해두는레코드집합 언제나현재레코드의설정내에서단일레코드만참조 공급자의데이터조작가능 AOD를사용할때 Recordset개체를사용하여거의대부분의데이터를조작 모든 Recordset개체는레코드 ( 행 ) 와필드 ( 열 ) 로구성 공급자가지원하는기능에따른 Recordset의일부메서드나속성을사용할수없음 ActiveConnection 지정된개체가현재속해있는 Connection개체를나타냄 RecordCount Bookmark 현재레코드를고유하게식별하는북마크를설정 Sort 정렬기준설정 CursorType Recordset개체에서사용되는커서의형식을나타냄 BOF /EOF 현재레코드위치가 Recordset개체의첫째 / 마지막레코드앞에옴 Filter Recordset의데이터에사용할필터를나타냄 Open 연결된 Recordset 열기 Close 열려있는개체와관련된개체모두닫음 Update Recordset개체의변경사항을저장 AddNew 업데이트가능한 Recordset 개체를위한새레코드를만듬 Delete 현재레코드나레코드그룹을삭제 MoveFirst MoveLast MoveNext 지정된 Recordset 개체에서첫째레코드, 마지막레코드, 다음레코드, 이전레코드로이동 MovePrevious Find Recordset 에서정의된기준에맞는레코드를검색 Seek Recordset 의인덱스를검색하여지정된값에일치하는행을신속하게찾음 엠엔디시스템 (http://mndsystem.tistory.com) 8/8