적용 대상
Microsoft 365용 Access Access 2021 Access 2019

Northwind Developer Edition에서 회사 관리에 대해 알아보려면 아래 항목을 선택합니다. 

참고: 이 페이지는 Access Developer Showcase Edition에서 참조됩니다.

Northwind Starter Edition에서 고객은 유일한 회사 유형입니다. Developer Edition에서는 고객, 배송업체 및 공급업체를 포함하도록 확장 했습니다

또한 제품에 대한 여러 공급업체 포함하도록 제품을 확장했습니다.   

각 회사는 고객, 배송업체 또는 공급업체의 한 가지 유형일 수 있습니다. 회사 유형을 변경할 수 있는 경우의 비즈니스 사례는 이 문서의 frmCompanyDetail 섹션에 설명되어 있습니다. '

회사 유형 및 사용되는 위치 

  • 주문 고객

  • 주문 배송업체

  • 구매 주문 공급업체

  • 제품 공급업체

또한 Northwind 개발자 버전의 회사에는 여러 연락처가 있을 수 있습니다. '

리본 메뉴의 회사

리본에서 회사를 선택하면 frmCompanyList에 Northwind의 회사가 표시됩니다. 

회사 목록 - frmCompanyList

Northwind 개발자 버전에서 frmCompanyList 는 분할 형식입니다. 분할 양식은 폼 보기 와 데이터 시트 보기라는 두 개의 데이터 보기를 동시에 제공합니다. 머리글과 바닥글도 있습니다.  이 구현에서는 양식 보기를 표시하지 않습니다. 양식 보기를 표시하지 않으면 머리글과 바닥글이 있는 데이터시트가 있습니다.  

이를 달성하는 방법은 다음과 같습니다.  

frmCompanyList에서는 헤더와 데이터시트 사이의 분할 막대가 표시되지 않습니다. 폼 속성 분할 폼 분할 막대 아니요로 설정되므로 양식 보기를 숨기게 됩니다. 

분할 양식 및 데이터시트 양식은 Excel 워크시트와 같습니다. 필터링 및 정렬을 지원하며 필드 또는 열을 표시, 숨기기 또는 이동할 수 있습니다. 또한 열을 합할 수도 있습니다. 

분할 양식의 머리글 및 바닥글 섹션을 사용하면 사용자 환경을 개선하려는 명령 단추, 이미지, 텍스트(레이블) 및 기타 액세스 양식 컨트롤을 사용할 수 있습니다. 양식 및 분할 양식에 대해 자세히 알아보려면 여기에서 시작할 수 있습니다. 데이터시트에는 머리글 및 바닥글 섹션이 표시되지 않습니다.

양식 소개분할 양식 만들기를 통해 자세히 알아보세요.  '

회사 목록 양식은 다음 5가지 작업을 지원합니다.

  • 사용자 지정, 미리 빌드된 필터, 주문형 필터링 또는 둘 다 적용

  • 필드 표시/숨기기

  • 레이블 만들기

  • 필터 표시

  • 새 회사 추가

세부 정보 행의 아무 곳이나 두 번 클릭하여 회사 세부 정보 양식(다른 양식과 마찬가지로 ID뿐만 아니라)을 엽니다.  '

미리 빌드된 필터 및 주문형 필터링

frmCompanyList 양식에는 Northwind의 회사를 필터링할 수 있는 기회가 풍부합니다.  화면 맨 위에서 다음 라디오 단추를 사용하여 필터링할 수 있습니다.

  • 모든 회사(기본값)

  • 고객 전용

  • 발송인만

  • 공급업체만

또한 데이터시트의 기본 제공 주문형 필터링 옵션을 사용할 수 있습니다. 회사 목록 양식(미리 빌드되거나 주문형)에 적용된 모든 필터는 열려면 frmCompanyDetail에 전달되고 적용됩니다.  

한 폼에서 다른 폼으로 필터를 전달하려면 먼저 필드 이름만 포함하도록 폼의 필터 문자열을 정리해야 합니다. 코드 모듈 Open_frmCompanyDetail 이 작업을 수행하는 방법에 대한 자세한 설명과 Form_Load 대한 주석에서 frmCompanyDetail에서 어떻게 적용되는지 확인합니다.

여기서 조건을 사용하여 양식을 여는 대신 폼의 OpenArgs 속성을 통해 필터 정보를 회사 세부 정보 양식에 전달합니다.  OpenArgs에 대한 자세한 내용은 여기를 참조하세요.

필드 표시/숨기기

필드 표시/숨기기를 선택하여 사용 가능한 모든 필드 목록이 있는 대화 상자를 엽니다. 하나 이상의 열을 검사 선택 취소할 수 있습니다. 선택한 레이아웃은 새 버전의 애플리케이션이 배포될 때까지 한 세션에서 다른 세션으로 유지됩니다. 데이터시트에 열 표시 또는 숨기기를 참조하세요. 

레이블 만들기

레이블 만들기 단추가 열리고 액세스 레이블 마법사가 열립니다. Access에서 메일 레이블 만들기에서 레이블 마법사에 대해 자세히 알아보세요. 

회사 세부 정보 열기

세부 정보 행의 아무 곳이나 두 번 클릭하여 frmCompanyDetail을 엽니다.

ID 필드(하이퍼링크로 설정)를 클릭하거나 세부 정보 행의 다른 필드를 두 번 클릭하여 선택한 회사에 frmCompanyDetail을 열고 회사 목록에 적용된 양식 필터를 frmCompanyDetail에 전달합니다.

회사 세부 정보 - frmCompanyDetail

언뜻 보기에 frmCompanyDetail 은 비교적 간단해 보일 수 있습니다.  그러나, 그것은 아니다.  양식 뒤에 있는 코드에서 많은 일이 일어나고 있습니다!  양식은 다음 작업 및 기능을 강조 표시합니다.

  • 여러 명령 단추 및 링크

    • 회사 추가

    • Email 회사 목록

    • 필터 표시

    • 회사 삭제

    • 주소에 따라 맵 열기

    • 하이퍼링크에서 웹 사이트 열기

  • 추가/편집 모드에서 작업 취소 또는 저장

  • 회사 유형을 변경할 수 있는 시기를 제어하는 비즈니스 규칙

  • 삭제 이벤트 전에 참조 무결성 확인 '

Form_Load 이벤트에는 다음 작업이 포함됩니다.

  • OpenArgs 및 사용자 지정 Northwind StringToDictionary 함수를 통해 양식에 전달된 여러 매개 변수 사용

  • OpenArgs 양식 속성을 사용하여 사용자가 주문을 받는 동안 새 회사를 추가할 수 있도록 합니다.

  • GoToRecord 기술을 사용하여 새 회사 추가

  • SearchForRecord 기술을 사용하여 frmCompanyList에서 선택한 회사로 이동

  • 분기/조건부 실행 옵션( Form_Load 이벤트 참조)

    • 옵션 1 - Case 문

    • 옵션 2 - 중첩된 경우

    • 옵션 3 – ElseIf

    • 옵션 4 - 중첩된 If Else 및 ElseIf '

Form_Current 이벤트에서 다음이 발생합니다. 

  • sub ManageFormOptions()를 호출하여 런타임에 하위 양식 캡션 및 원본 개체를 변경합니다. 이 서브루틴은 이 양식의 여러 위치에서 호출됩니다.  '

추가 또는 편집 모드에서 작업을 취소하거나 저장합니다. 

Access 양식은 바인딩됩니다.  어떤 의미인가요?  Microsoft: "'바인딩된' 양식은 테이블 또는 쿼리와 같은 데이터 원본에 직접 연결되어 있으며 해당 데이터 원본의 데이터를 입력, 편집 또는 표시하는 데 사용할 수 있습니다."

바인딩된 양식을 사용하면 Access에서 데이터를 명시적으로 "저장"할 필요가 없습니다.  한 레코드에서 다음 Access로 이동하면 데이터가 자동으로 저장됩니다.  종종 그것은 당신이 원하는 방식으로 작동합니다.  그러나 사용자가 저장할 준비가 되었음을 나타내는 작업을 수행해야 하는 경우 어떻게 해야 할까요? 

예를 들어 frmCompanyDetail 양식에는 연락처 (sfrmCompanyDetail_Contacts)에 대한 하위 양식이 있습니다.  따라서 회사 데이터를 추가하거나 편집하기 시작하고 전화 번호를 말하고 일시 중지하여 연락처 정보에서 알 수 있는 오타를 수정하면 어떻게 되나요?  기본적으로 Access는 연락처 레코드를 클릭할 때 회사 레코드에서 변경한 내용을 저장합니다. 이는 원하는 내용이 아닙니다

이 형식에서는 회사에 대한 단일 레코드를 사용하여 이를 수행하는 한 가지 방법을 보여 드립니다.

취소 단추가 있는 이유는 무엇인가요? 이스케이프 키는 폼의 컨트롤에서 입력되거나 변경되었지만 저장되지 않은 데이터를 취소 합니다. 이 상태에서 연필 아이콘은 레코드 선택기(행의 맨 왼쪽에 있는 회색 세로 막대)에 나타납니다.

그러나 회사 추가 단추를 클릭하면 새 회사 레코드에 데이터를 입력하기 시작할 때까지 연필 아이콘이 없다는 것을 알 수 있습니다. 이 시점에서 새 회사를 추가하는 것에 대한 마음이 바뀌면 어떻게 해야 할까요? 이스케이프 키를 누르면 아직 데이터를 입력하지 않았기 때문에 아무 일도 발생하지 않습니다. 취소 단추가 있는 이유입니다.

취소 단추를 클릭하면 항상 작동합니다. 이스케이프 키는 데이터를 입력하거나 변경한 경우에만 작동합니다.  

데이터를 추가하거나 변경한 다음 저장 또는 취소를 클릭하지 않고 양식을 닫으면 기본적으로 Access에서 데이터를 저장합니다.  

비즈니스 규칙: 회사에 대한 Northwind 비즈니스 규칙으로서 "저장"을 명시적으로 표시하려고 합니다.  이렇게 하려면 사용자가 Form_BeforeUpdate 이벤트에서 저장을 클릭한 경우 및 저장을 클릭하지 않은 경우 변경 내용을 저장하거나 취소할지 여부를 사용자에게 표시하라는 메시지를 표시해야 검사. '

회사 유형 변경

비즈니스 규칙: 회사에 기존 주문, 구매 주문 또는 제품 공급업체가 있는 경우 사용자는 회사 유형을 변경할 수 없습니다. 위의 조건이 있는지 확인하기 위해 CompanyIsActive() 함수를 만들었습니다. 이렇게 하면 이러한 참조를 지울 때까지 회사 유형을 변경할 수 없습니다(삭제). 

이 규칙은 이 양식에서만 적용됩니다.  프로덕션 준비 애플리케이션에서는 사용자가 테이블을 직접 열어 데이터를 변경할 수 없습니다.  Northwind에서는 테이블을 열고 원하는 대로 수행할 수 있습니다.  이는 학습할 수 있는 좋은 방법이지만 규칙을 위반할 수 있는 변경 내용을 자유롭게 만들 수 있습니다. 

항상 방어적으로 프로그래밍해야 합니다. 예기치 않은 경우를 계획합니다. 회사가 현재 배송업체인 경우에도 공급업체나 고객이 아니었다는 뜻은 아닙니다. 해당 ID는 ProductVendor 또는 PurchaseOrder 테이블의 이전 레코드에서 찾을 수 있습니다. '

사용자 지정 대화 상자 양식입니다.

결과를 표시하기 위해 cboCompanyTypeID_BeforeUpdate 대화 상자 형식 인 frmGenericDialog를 사용합니다. 표시할 정보가 많은 경우 표준 메시지 상자에 대한 훌륭한 대안이 될 수 있습니다. 또한 비슷한 목적으로 직원 양식과 함께 사용됩니다.'  참조 무결성 검사 삭제

Northwind Starter Edition에서 Access 기본 동작은 관련 레코드가 있는 경우 회사를 삭제할 수 없음을 알려 드립니다.  

Northwind Developer Edition에서는 Access 기본 동작을 수락하는 대신 삭제 전에 사용자에게 알립니다.  회사 유형 변경과 동일한 기능을 사용하여 이 작업을 수행합니다. function CompanyIsActive().

차이점은 주문 또는 구매 주문에만 관심이 있다는 것입니다. 주문 또는 구매 주문이 없는 경우 삭제 의도를 확인하고 제품 공급업체연락처가 있는 경우 삭제합니다. 

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.