다음 섹션에서는 직원 양식을 사용하는 방법과 프로그래밍 방법을 보여줍니다. 개체 이름이 제공되므로 Northwind 2.0 Starter Edition 데이터베이스에서 쉽게 검사할 수 있습니다.
다음은 직원 목록 양식 사용에 대한 중요한 세부 정보입니다.
-
기본 메뉴에서 왼쪽 메뉴에서 직원을 선택하면 오른쪽 작업 영역에 직원(sfrmMainMenu_EmployeeList) 목록이 표시됩니다.
-
각 직원의 ID는 해당 직원의 레코드를 팝업 형태로 열어 세부 정보를 편집하는 하이퍼링크입니다.
-
새 직원을 추가하려면 머리글 행의 맨 오른쪽에 있는 직원 추가 단추를 클릭하여 새 직원 레코드를 팝업 양식(sfrmEmployeeDetail_OrderList)으로 열어 세부 정보를 추가합니다.
다음은 직원 세부 정보 팝업 양식 사용에 대한 중요한 세부 정보입니다.
-
직원 세부 정보 팝업 양식(frmEmployeeDetail)을 사용하면 직원 레코드를 편집하고 추가할 수 있습니다.
-
모든 직원에게는 이름, 성 및 직위의 세 가지 필드가 필요합니다.
-
직원 레코드를 저장하기 전에 하나 이상의 작업이 완료되지 않은 경우 기본 액세스 오류 메시지가 표시됩니다. 이메일 주소 및 전화 번호와 같은 다른 필드에는 유효성 검사가 적용되지 않습니다. 사용자는 (000) 000-000과 같은 적절한 서식을 담당합니다. 타이틀 드롭다운 컨트롤의 기본 액세스 유효성 검사는 항목을 미리 선택된 값 목록으로 제한합니다. 값 필드 컨트롤에 대한 기본 액세스 동작을 사용하여 새 제목을 다시 추가할 수 있습니다. 양식에서 드롭다운을 선택하면 편집 아이콘이 표시됩니다.
-
직원 사진은 첨부 파일 필드로 테이블에 저장됩니다. 첨부 파일 필드에 대한 기본 액세스 동작을 사용하여 새 이미지를 추가하거나 기존 이미지를 변경합니다.
-
직원이 주문을 만든 경우 직원 세부 정보 팝업의 오른쪽에 있는 하위 폼에 데이터시트 보기에 해당 주문이 나열됩니다.
-
해당 직원의 기존 주문은 Orders 하위 폼(sfrmOrderDetails)에서 하이퍼링크된 주문 ID #을 클릭하여 편집할 수 있습니다.
직원 양식은 기본 논리를 수행하기 위해 양식의 컨트롤에 VBA 및 포함된 매크로를 모두 사용합니다. 여기에는 두 개의 독립 실행형 매크로와 여러 개의 포함된 매크로가 포함됩니다.
직원 목록
-
직원 목록 양식(sfrmMainMenu_EmployeeList)은 간단한 쿼리 qryEmployeeList( RecordSource 속성에서)에서 해당 데이터를 가져옵니다. 하나의 테이블 쿼리에 데이터 입력 양식을 기반으로 하는 것이 좋습니다.
-
직원 목록 양식의 컨트롤을 사용할 수 있습니다. 즉, 컨트롤을 선택하고 잠글 수 있습니다. 즉, 읽기 전용입니다.
-
다중값 필드를 기반으로 하는 제목 필드는 드롭다운 또는 콤보 상자입니다. 해당 행 원본은 값 목록입니다. 즉, 사용 가능한 선택적 항목이 해당 필드 내에 직접 포함됩니다. 이 양식은 편집을 위한 것이 아니므로 목록에는 Limit to List 속성이 "예"로 설정되어 있습니다. 다중값 필드는 권장 사항이 아니라 기능의 그림으로만 포함됩니다.
-
직원 목록(sfrmMainMenu_EmployeeList)에서 Key Up 및 Key Down 이벤트에 대한 두 개의 하위 프로시저는 데이터시트 보기에서 사용자의 커서 이동에 응답합니다. 커서 이동 방향(왼쪽, 오른쪽, 위 또는 아래)을 감지하고 포커스를 적절한 컨트롤로 이동하는 VBA 함수를 호출합니다.
-
기존 직원 레코드를 편집하고 세부 정보 양식(frmEmployeeDetail)에 새 레코드를 추가합니다.
-
다음 두 가지 방법 중 하나로 직원 목록에서 직원 세부 정보 양식을 편집 가능한 팝업 양식으로 열 수 있습니다.
-
하이퍼링크로 표시되도록 형식이 지정된 EmployeeID를 선택하고 직원 세부 정보 양식을 열고 해당 직원 레코드로만 필터링합니다.
-
양식 머리글에서 직원 추가 레이블을 선택하여 직원 세부 정보 양식을 열고 포커스를 새 레코드로 이동합니다. 모든 현재 레코드는 폼의 레코드 원본에 있습니다.
두 가지 방법은 성능에 다른 영향을 미칠 수 있습니다. 폼을 단일 레코드로 필터링하면 테이블에서 전송할 데이터의 양이 최소화됩니다. 작은 레코드 집합을 사용하면 차이가 눈에 띄지 않을 수 있습니다.
-
직원 세부 정보
-
직원 세부 정보 양식(frmEmployeeDetail)은 간단한 쿼리 qryEmployeeDetails(폼의 RecordSource 속성에서)에서 해당 데이터를 가져옵니다. 하나의 테이블 쿼리에 데이터 입력 양식을 기반으로 하는 것이 좋습니다.
-
qryEmployeeDetails의 SELECT 절은 별표 와일드카드 문자(*)를 사용하여 테이블의 모든 필드를 선택하는 반면 qryEmployeeList의 SELECT 절은 특정 필드를 나열합니다. 와일드카드 문자를 사용하면 쿼리를 추가로 편집하지 않고 기본 테이블의 새 필드를 검색할 수 있습니다. 특정 필드 목록을 사용할 수 없습니다. 특정 필드 목록은 레코드 집합을 표시 전용 형식에 필요한 필드로만 제한합니다. 디자인은 요구 사항에 더 적합한 방법을 고려해야 하지만, 기본 설정은 와일드카드 문자를 사용하는 향후 유지 관리가 필요할 가능성이 가장 낮은 접근 방식으로 이동해야 합니다.
-
직원 세부 정보 양식의 컨트롤이 활성화되어 있고 잠겨 있지 않으므로 편집할 뿐만 아니라 선택할 수 있습니다.
-
다중값 필드를 기반으로 하는 제목 필드는 드롭다운 또는 콤보 상자입니다. 해당 행 원본은 값 목록입니다. 즉, 사용 가능한 선택적 항목이 해당 필드 내에 직접 포함됩니다. 이 양식은 편집 을 위한 것이므로 목록에 Limit to List 속성이 "아니요"로 설정되어 있습니다. 타이틀을 추가하거나 편집하는 경우 기본 제공 Access 메서드가 사용되므로 코드가 필요하지 않습니다. 다중값 필드는 권장 사항이 아니라 기능의 그림으로만 포함됩니다.
-
기존 직원 레코드와 새 직원 레코드를 세부 정보 양식에서 편집할 수 있습니다.
-
다음 두 가지 방법 중 하나로 직원 목록에서 직원 세부 정보 양식을 편집 가능한 팝업 양식으로 열 수 있습니다.
-
하이퍼링크로 표시되도록 형식이 지정된 EmployeeID를 선택하여 직원 세부 정보 양식을 열고 해당 직원 레코드로만 필터링합니다.
-
양식 머리글에서 직원 추가 레이블을 선택하여 직원 세부 정보 양식을 열고 포커스를 새 레코드로 이동합니다. 모든 현재 레코드는 폼의 레코드 원본에 있습니다.
-
-
폼을 단일 레코드로 필터링하면 테이블에서 폼으로 전송할 데이터의 양이 최소화됩니다. 샘플 데이터와 같은 작은 레코드 집합을 사용하면 차이가 눈에 띄지 않을 수 있습니다.
-
Personal Information의 오른쪽에 있는 하위 폼 컨트롤(sfrmEmployeeDetail_OrderList)은 현재 선택한 직원(있는 경우)에 대한 주문을 표시합니다. 하위 폼 컨트롤의 하위 폼은 Orders 섹션에서 다시 사용됩니다. 하위 폼 컨트롤의 기본 제공 Access LinkMasterFields/LinkChildFields 속성은 각 직원에 대해 표시되는 레코드를 동기화하고 필터링합니다.
-
직원 세부 정보(frmEmployeeDetail)에서 폼의 On Current Event 및 On Close 이벤트에 대한 두 개의 하위 프로시저는 이러한 이벤트에 응답합니다.
-
현재에서는 현재 레코드가 기존 레코드인지 또는 새 직원의 레코드인지에 따라 시작되었지만 아직 저장되지 않은 경우 직원 추가 레이블을 표시하거나 숨깁니다.
-
Close에서 두 가지 유지 관리 작업을 수행합니다. 직원 세부 정보 하위 폼의 Recordset을 다시 쿼리하여 세부 정보 양식의 추가 또는 변경 내용을 업데이트합니다. 해당 매크로를 호출하여 기본 메뉴의 직원 수 표시를 다시 동기화합니다.
-
매크로
macMainMenu_UpdateSubs 이 매크로는 독립 실행형이며 직원 양식을 포함한 특정 이벤트가 발생할 때 실행됩니다. macMainMenu_UpdateSubs 내에서 하위 매크로는 적용되는 기능에 따라 그룹화됩니다. 직원의 경우 하위 매크로는 직원 레코드 수를 기본 메뉴에 표시된 수와 동기화합니다.
포함된 매크로 직원 양식은 주로 양식에 포함된 포함된 매크로에 의해 구동되며 양식에서만 편집할 수 있습니다. 직원 목록(sfrmMainMenu_EmployeeList)
-
EmployeeID 하이퍼링크 직원 목록 양식에서 EmployeeID를 클릭하면 직원 세부 정보 양식이 열리고 포커스가 선택한 직원 레코드로 설정됩니다.
-
직원 레이블 추가 직원 추가 단추를 클릭하면 직원 세부 정보 양식(frmEmployeeDetail)이 열리고 포커스가 새 레코드로 설정됩니다.
-
직원 세부 정보 헤더에서 Employee 추가 단추를 클릭하면 현재 레코드가 저장되고 포커스가 새 레코드로 설정됩니다.