以下章節將說明如何使用員工表單及其程式設計。 物件名稱提供方便你在 Northwind 2.0 入門版資料庫中查閱。
使用員工表格
以下是使用員工名單表單的重要細節:
- 從主選單開始,從左側選單選擇 「員工 」,會顯示右側工作區中 (sfrmMainMenu_EmployeeList) 的員工名單。
- 每位員工的 ID 是一個超連結,可以在彈出表單中開啟該員工的紀錄,編輯他們的資料。
- 要新增員工,請點擊頁頭列最右側的 「新增員工 」按鈕,該按鈕會在彈出表單中開啟新員工紀錄 (sfrmEmployeeDetail_OrderList) 以填寫他們的資料。
使用員工資料彈出表單
以下是使用員工資料彈出表單的重要細節:
frmEmployeeDetail (員工資料彈出表單) 可編輯和新增員工紀錄。
所有員工都必須填寫三個欄位:名字、姓氏和職稱。
預設存取錯誤訊息會在嘗試儲存員工紀錄前,提醒你一個或多個未完成的錯誤訊息。 其他欄位如電子郵件地址和電話號碼則不需驗證。 使用者需負責適當的格式,例如 (000) 000-000。 標題下拉選單的預設存取驗證限制條目僅為預先選定的數值清單。 你可以新增標題,同樣使用預設的存取行為來控制值欄位。 在表單中選擇下拉選單會顯示編輯圖示。
員工照片會以附件欄位的形式儲存在表格中。 你可以新增圖片或更改現有圖片,使用預設的 Access 行為來設定附件欄位。
如果員工已經建立了訂單,員工詳細資料彈出視窗右側的子表單會在資料表檢視中列出這些訂單。
該員工的任何現有訂單都可以點擊 sfrmOrderDetails) (訂單子表單中的超連結訂單 ID # 來編輯。
員工表單的程式設計
員工表單在表單控制中同時使用 VBA 與嵌入巨集來執行基本邏輯。 它們包含兩個獨立巨集和數個嵌入式巨集。
員工名單
Employee List 表單 (sfrmMainMenu_EmployeeList) 資料來自 RecordSource 屬性) 的簡單查詢 qryEmployeeList (。 建議以單表查詢為基礎建立資料輸入表單。
員工名單表單上的控制項是啟用的,代表你可以選擇,但鎖定的則是唯讀。
以多重值欄位為基礎的標題欄位是下拉式清單或下拉式方塊。 其資料列來源是值清單,這表示可用的選擇性項目直接包含在該欄位內。 該清單的 「限制至清單 」屬性設為「是」,因為此表單並非用於編輯。 多重值欄位只包含做為功能圖例,而不是建議。
在員工清單 (sfrmMainMenu_EmployeeList) 中,兩個子程序在 Key Up 和 Key Down 事件中回應使用者在資料表檢視中的游標移動。 它們偵測游標向左、右、上或下方 () ,並呼叫 VBA 函式將焦點移至相應控制點。
你可以在 frmEmployeeDetail) 的詳細表單 (編輯現有員工紀錄並新增。
您可以用兩種方式從員工清單開啟員工詳細資料表單,做為可編輯的彈出視窗:
- 選擇一個 EmployeeID(格式為超連結),打開員工資料表單,並篩選出只顯示該員工紀錄。
- 透過在表單標頭上選擇 「新增員工 」標籤,開啟員工詳細資料表單,並將焦點移到新紀錄。 所有目前的記錄都位在表單的記錄來源中。
請注意,這兩種方法對效能的影響可能不同。 將表單篩選成單一記錄可減少從資料表傳輸的資料量。 對於小型紀錄集來說,差異可能不太明顯。
員工資料
員工資料表單 (frmEmployeeDetail) 從表單的 RecordSource 屬性) 取得簡單的查詢 qryEmployeeDetails (。 建議以單表查詢為基礎來填寫資料輸入表單。
qryEmployeeDetails 中的 SELECT 子句使用星號萬用字元 (*) 來選取表格中的所有欄位,而 qryEmployeeList 中的 SELECT 子句則是列出特定欄位。 使用萬用字元可讓底層資料表中的新欄位被檢索,無需額外編輯查詢內容。 這在特定欄位清單中無法實現。 特定欄位的清單會限制記錄集僅包含顯示形式中所需的欄位。 你的設計應該基於哪種方法更符合你的需求,但優先選擇最不可能需要未來維護的方法,也就是使用萬用字元。
員工資料表單上的控制功能已啟用且未鎖定,代表你可以選擇並編輯它們。
以多重值欄位為基礎的標題欄位是下拉式清單或下拉式方塊。 其資料列來源是值清單,這表示可用的選擇性項目直接包含在該欄位內。 該清單的 「限制至清單 」屬性設為「否」,因為此表單是用於編輯的。 新增或編輯標題使用內建的 Access 方法,因此不需要程式碼。 多重值欄位只包含做為功能圖例,而不是建議。
你可以在詳細表單中編輯現有員工紀錄和新紀錄。
您可以用兩種方式從員工清單開啟員工詳細資料表單,做為可編輯的彈出視窗:
- 選擇一個格式為超連結的 EmployeeID,打開員工資料表單,並篩選出該員工紀錄。
- 透過在表單標頭上選擇 「新增員工 」標籤,開啟員工詳細資料表單,並將焦點移到新紀錄。 所有目前的記錄都位在表單的記錄來源中。
將表單篩選為單一記錄可減少從表格傳輸到表單的資料量。 對於像樣本資料這樣的小型記錄集,差異可能不易察覺。
個人資料右側 (sfrmEmployeeDetail_OrderList) 子表單控制項顯示目前已選取員工的訂單 (若有) 。 子表單控制中的子表單是從 命令 區段重新利用的。 子表單控制項內建的 Access LinkMasterFields LinkChildFields/ 屬性,會同步並過濾每位員工的紀錄。
在 frmEmployeeDetail) (員工詳情中,表單的「 關於當前事件 」和 「結束事件 」中的兩個子程序回應這些事件:
- 「在目前 」會顯示或隱藏新增 員工 標籤,取決於目前紀錄是現有紀錄,還是新員工的紀錄,雖然已開始但尚未儲存。
- 在近距離 時執行兩個維護操作。 它會重新查詢員工資料子表單中的紀錄集,以更新該表單中的任何新增或變更。 它會透過呼叫主選單的員工數量顯示重新同步巨集。
巨集
macMainMenu_UpdateSubs 此巨集獨立運作,當特定事件發生時(包括員工表單)會執行。 在macMainMenu_UpdateSubs內,子巨集依其適用的功能分組。 對於員工,子巨集會將員工記錄數量與主選單顯示的記錄同步。
嵌入式巨集 員工表單主要由表單內嵌的巨集驅動,且只能從表單中編輯。 在員工名單中 (sfrmMainMenu_EmployeeList) :
- 員工ID超連結 點擊員工名單表單中的 EmployeeID,會開啟員工詳細表單,並將焦點設定為所選員工紀錄。
- 新增員工標籤 點擊 新增員工 按鈕會開啟 frmEmployeeDetail) (員工詳細表單,並將焦點設定為新的紀錄。
- 員工資料 點擊標頭上的 「新增員工 」按鈕會儲存目前的紀錄,並將焦點設定為新的紀錄。