다음 섹션에서는 VBA에 대한 유용한 정보를 제공합니다. 개체 이름이 제공되므로 Northwind 2.0 Starter Edition 데이터베이스에서 쉽게 검사할 수 있습니다.
VBA(Visual Basic for Applications)는 Access뿐만 아니라 모든 Microsoft 365 제품에 사용되는 프로그래밍 언어입니다. 주로 개발자 설명서 액세스에 대해 설명합니다.시작하려면 Access 프로그래밍 소개를 참조하세요.
정보를 검색할 때 Access 특정 예제를 찾고 검색 용어에 Microsoft Access를 포함해야 합니다. 종종 다른 Microsoft 365 제품에 대한 솔루션이 작동하지만 변경이 필요할 수 있습니다.
Microsoft Access는 완성도 높은 제품입니다. 즉, 많은 예제가 있으며 이는 사용자에게 좋습니다. 즉, Access 프로그래밍에 대한 이전 설명서는 계속 살펴볼 수 있습니다. 오래된 책의 대부분은 여전히 원래 비용의 일부에 중고 도서 사이트에서 사용할 수 있습니다.
Microsoft Access 파일은 Microsoft 365 파일입니다. Microsoft 365 파일은 신뢰할 수 있는 위치에 있거나 해당 콘텐츠를 사용하도록 설정해야 합니다. 이러한 항목은 사용자가 만들었거나 신뢰할 수 있는 원본에서 나왔기 때문에 안전한 것으로 간주됩니다. 이 검사는 Microsoft 365 파일을 열 때마다 발생합니다. 여기서는 이를 신뢰할 수 있는/사용으로 참조합니다. 새 버전의 애플리케이션이 릴리스되고 신뢰할 수 없는 위치에서 열리면 콘텐츠를 사용하도록 설정하는 프로세스가 반복됩니다. 자세한 내용은 Microsoft 365 파일의 신뢰할 수 있는 위치, 데이터베이스 신뢰 여부 결정 및 Microsoft 365에서 신뢰할 수 있는 위치 추가, 제거 또는 변경을 참조하세요.
매크로, 함수 및 하위 프로시저는 Access 데이터베이스에 비즈니스 논리를 구현하는 방법입니다.
폼의 컨트롤(예: 단추, 텍스트 상자, 레이블 등)은 해당 이벤트(예: 컨트롤 클릭)를 사용하여 레코드 추가, 삭제 또는 양식 열기와 같은 다른 프로세스를 트리거할 수 있습니다. 이러한 프로세스는 매크로 또는 VBA를 사용하여 구현할 수 있습니다. Northwind는 대부분 매크로와 일부 VBA를 사용합니다. 자세한 내용은 RunCode 매크로 함수를 참조하세요.
일부 컨트롤 형식에는 매크로를 자동으로 만드는 기본 제공 마법사가 있습니다. 예를 들어 양식에 명령 단추를 추가하면 단추에 대한 여러 가지 기능을 제공하는 마법사가 열립니다. 콤보 상자를 추가하면 양식에서 특정 레코드를 찾도록 구성할 수 있는 마법사가 열립니다.
탐색 창은 모든 데이터베이스 개체를 보고 액세스하는 주요 방법이며 기본적으로 액세스 창의 왼쪽에 표시됩니다. Northwind 2.0 Starter Edition 탐색 창이 사용자 지정되었습니다. Northwind Starter 2.0이라는 사용자 지정 범주를 만들었습니다. 이렇게 하면 기능 영역별로 개체를 구성할 수 있습니다. 자세한 내용은 탐색 창 사용자 지정을 참조하세요.
Access 및 Microsoft 365 내에서 범위 및 가시성에 대해 알아보는 것이 중요합니다. 범위는 다른 프로시저에서 사용할 변수, 상수 또는 프로시저의 가용성을 나타냅니다. 프로시저 수준, 프라이빗 모듈 수준 및 퍼블릭 모듈 수준의 세 가지 범위 수준이 있습니다. 선언할 때 변수의 범위를 결정합니다. 범위가 다른 변수 간의 명명 충돌 오류를 방지하기 위해 모든 변수를 명시적으로 선언하는 것이 좋습니다. 모든 모듈에는 두 개의 지시문인 Option Compare Database 및 Option Explicit가 있습니다. 자세한 내용은 범위 및 표시 유형 이해, 공개 문, Private 문, 정적 문 및 변수 수명 이해를 참조하세요.
경우에 따라 변수를 만든 개체가 범위를 벗어난 후에 존재해야 하는 경우가 있습니다. 이 작업을 수행하는 세 가지 기본 방법은 Public Variables, TempVars 및 로컬 테이블에 값 저장입니다. 이들 각각에는 장단점이 있습니다. 많은 개발자가 이러한 혼합을 사용합니다.
현재 세션에 대해 공용 변수 및 TempVars가 존재하며 애플리케이션이 닫혀 있을 때 범위를 벗어났습니다. 세션 전체에서 사용자별 변수를 유지하려면 어떻게 해야 할까요? 이러한 형식의 값을 로컬 테이블에 저장할 수 있습니다. Northwind 2.0 Starter Edition에서는 SystemSettings라는 테이블에 해당 값이 있습니다. 예를 들어 테이블의 값은 "ShowWelcome"입니다. 이 값은 로그인할 때마다 시작 화면을 표시할지 여부를 알려줍니다.
Access에 기본 제공되는 컨트롤 마법사를 사용한 경우 매크로가 만들어지면 오류 처리가 전혀 없는 경우가 많으며 VBA가 만들어지면 MsgBox 함수, Err.Description 스타일로 제한될 수 있습니다.
Northwind 2.0 Starter Edition에서는 전역 오류 처리기라고 하는 것을 구현했습니다. 모든 프로시저에서 발생하는 오류는 전역 수준에서 함수를 호출하여 오류를 표시합니다. 가장 큰 장점은 코드가 일관적이라는 것입니다. 예를 들어 오류 번호를 표시하거나 파일에 오류를 기록하는 등 메시지를 변경해야 하는 경우 한 곳에서만 수행할 수 있습니다.
clsErrorHandler는 오류 처리 코드를 구현하는 클래스 모듈입니다. 클래스 모듈은 모든 주 함수와 도우미 함수를 한 단위로 유지하여 코드를 보다 캡슐화합니다. AutoExec 매크로는 결국 modStartup에서 시작 함수를 호출하고, clsErrorHandler 인스턴스를 만들고, 애플리케이션 전체에서 사용할 수 있도록 전역 변수로 저장합니다.
실제로 프로시저의 오류 처리 코드는 매우 일관적이어서 각 프로시저에 적절한 오류 처리기를 적용한 멋진 VBA 코드를 사용하여 5분 이내에 모든 코드를 만들 수 있었습니다. 이 코드는 템플릿에 포함되지 않습니다.