使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

選取下列任何主題以瞭解 Northwind Developer Edition 中 的員工 。 

員工有一個分割表單,可做為清單和詳細表單。 

使用 [員工] 新增員工並更新現有員工的相關資訊。 

選取功能區上的 [ 員工] 索引標籤,以在 [員工清單] 表單 frmEmployeeList中顯示員工,這是具有下列功能的分割表單: 

  • 表單的頂端是一位員工的單一檢視。

  • 表單的下半部是所有員工的資料工作表檢視。

  • 在任一部分中選取員工,也會將焦點設定為分割表單另一部分的員工。

  • 您可以在分割表單的任一部分新增、編輯或刪除員工。

  • 在資料工作表檢視部分中使用分割表單時,會假設表單的記錄來源具有多筆記錄。

分割表單的潛在效能影響 

大部分的開發人員偏好 載入未篩選的資料表或查詢做為表單的記錄來源。 將表單篩選成單一記錄會將要從資料表傳輸到表單的資料量降到最低。 使用本機 Access 資料表時,載入篩選的記錄來源與未篩選的小型記錄來源之間的差異可能難以明顯。 不過,當 Access 資料表取代為遠端伺服器資料庫,例如SQL Server時,就會遺失此效能。 

Northwind 中的員工資料表應該不會變得很大,因此它是未篩選記錄來源的候選資料。 不過,系結至其他資料表的表單,例如訂單詳細資料,可能會增長成數千筆記錄,並非未篩選記錄來源的候選項目。
 

編輯員工

在分割表單中新增或編輯記錄時,使用者可以在表單檢視或資料工作表檢視中輸入值。 有些欄位是必要的,有些則是選用的。 表單會驗證必要欄位中的值是否存在。 請參閱下方 的必要欄位驗證

查閱表格、值清單和下拉式控制項

  • [ 標題] 下拉式清單會將專案限制為預先選取的標題清單。 標題位於名為 「標題」 的查閱 表格

  • 某些預期選項已儲存在查閱資料表中,但使用者可以使用下拉式方塊的預設 Access 行為或下拉式控制項,將新的標題新增至查閱資料表。

    • [標題] 下拉式方塊的 [清單限制] 屬性設為 [],而 [標題] 的編輯表單會在 [清單專案編輯表單] 屬性中識別。 選取表單上的下拉式清單會在底部邊緣顯示編輯圖示。 
      ...

按一下編輯圖示會開啟 [標題 ] 編輯表單 frmEmployeeTitles,您可以在此變更或新增到核准的標題清單。 

注意:在大部分的生產環境中,編輯或新增標題僅限於具有增強許可權的使用者。
 

Self-Referential 查閱欄位

員工函數說明 Self-Referential 識別碼欄位的概念。 若要支援指派員工的主管,資料表具有[員工標識符] 欄位,供其他員工使用。 若要指定監督者,會在此欄位中輸入其他員工的 EmployeeID 。 Access 會針對此關聯強制執行參考完整性。

SupervisorID會在員工表單中以下拉式方塊或下拉式方塊的形式實作;其 rowsource 是來自 [員工] 資料表的一組經過篩選的記錄。 由於這是自我引用,因此查詢必須排除所選員工自己的 員工識別碼。 例如,Employee Ellen FinsterSupervisorID rowsource 不包含 Ellen 自己的EmployeeID。 她不能是自己的監督者。

附件欄位和控制項

員工圖片會儲存在資料表中的附件欄位中。 您可以使用附件欄位的預設 Access 行為來新增影像或變更現有的影像。 
...

注意: 我們在 [ 員工 ] 資料表中包含一個附件欄位,以說明 Access 中的功能。 內嵌影像會增加 accdbs 的大小,因此不視為最佳作法。 在生產應用程式中實作之前,請仔細評估您的環境。 慣用的替代方案是儲存所有影像的網路資料夾,以及包含圖像路徑的資料表文字欄位中的連結,而不是[附件] 欄位

含有相關資訊的子表單

[員工] 表單右側的 [訂單子表單] () 顯示最近由員工處理) (訂單。 子表單會在 [資料工作表檢視] 中列出順序,從最新到最舊排序。 若要編輯該員工的現有訂單,請按一下 [訂單] 子表單中的超連結 [訂單識別碼] # 。

員工表單的 Recordsource

名為 qryEmployees 的查詢會傳 回表單中的記錄。 使用查詢而非資料表通常會被視為最佳作法。 查詢只會傳回一個資料表的記錄。 此外,可以將查詢參數化以限制傳回的記錄數目。 

  • 此查詢的 Select 子句使用萬用字元 '*'傳回 [員工] 資料表中的所有欄位。

  • 查詢中的兩個匯出欄位會傳回 FirstName LastNameLastName、FirstName
     

控制項中的計算值

注意: 匯出欄位 不會 儲存在資料表中。 不過, 它們可 在表單的 recordsource 中使用

[員工] 表單上大部分的控制項都 已啟用 ,因此您可以使用滑鼠或索引標籤加以選取,而且未鎖定 以便編輯。 

除了內建的 Access 行為,表單中的 VBA 子函數和函數、表單上的控制項,以及獨立模組中,都會執行員工所需的基本邏輯。 下一節將說明函數及實作這些函數的程式碼。 

內建控制項動作

表單的 [記錄選取器] 預設行為: 

  • 在單一檢視中,以滑鼠左鍵按一下表單左側的記錄選取器,會以任何編輯方式儲存目前的記錄。 以滑鼠左鍵按一下記錄選取器來儲存,會觸發適當的 VBA 子和函數。

  • 在單一檢視中,以滑鼠右鍵單表單左側的記錄選取器會彈出功能表,以執行 [剪下]、[複製] 或 [貼上] 等動作。 刪除或剪下記錄會觸發 EmployeeCanBeDeleted 函數,如下所述。

  • 記錄選取器必須啟用,表單才能使用此預設行為。
     

表單中記錄的參考完整性

參考完整性可防止刪除在相關資料表中有 子女 記錄的員工。 因此,如果使用者嘗試刪除包含子女記錄的記錄,Access 會提出錯誤。 Northwind 員工表單 Access 會將關於參考完整性的一般預設錯誤訊息取代為自訂訊息。

表單 [ 刪除 ] 程式中的程式碼會回應嘗試從右鍵功能表剪 下記錄,或使用 Delete 鍵刪除記錄。 

Private Function, EmployeeCanBeleted, 會在 [ 訂單]、[ 採購單]、[ 員工] 和 [ 員工許可權 ] 資料表中檢查該員工的相關記錄。 

如果找到記錄,此函數會隱藏預設的錯誤訊息,並告知使用者無法使用與客戶表單用來通知使用者客戶無法刪除之原因相同的一般對話方塊刪除記錄。

驗證

員工實作驗證和標準錯誤處理。 控制項有兩種類型的驗證。

  • 必要欄位

  • 標準格式

必要欄位驗證

 所有員工都必須有三個欄位:

  • 名字

  • 姓氏

  • 職稱

在此開發人員版本中,表單的 [更新前] 事件會驗證必要欄位。 如果使用者嘗試儲存員工記錄,但沒有值驗證的一或多個必要欄位的值,則會取消儲存,並醒目提示任何沒有值的必要欄位。 在 Northwind 的 [員工] 表單中,必要欄位驗證是由表單的 [更新前] 事件處理,而不是由個別控制項處理。

員工表單的 [更新前 ] 事件會驗證三個必要欄位的值是否存在。 儲存新員工或已編輯的員工記錄會啟動表單的 [更新前 ] 事件,該事件稱為 [公用函數],用於檢查或回應必要值的目前狀態或缺勤情況。

modValidation模組包含下列函數:

  • ValidateForm

  • IsValidForm

  • HighlightInvalidControls

  • HighlightControl

  • ValidateForm_RemoveHighlights

管理新員工

按一下 [ 新增員工] 按鈕會執行 [私人子 btnNewEmployee_Click,順序如下: 

  • 儲存目前的記錄,然後

  • 將表單的焦點設為新記錄
    '

[選取] 查詢中的萬用字元與具名欄位

qryEmployees中的SELECT子句使用萬用字元 「*」 來選取資料表中的ALL欄位。 萬用字元查詢設計會自動包含來自基礎資料表的任何新新增欄位,而特定欄位清單則無法包含這些欄位。 另一方面,其中一個可能列出特定欄位,以將傳回的 recordset 限制為僅顯示表單所需的那些欄位,例如。

適當的設計選項

您的設計應以您需求的適當方法為基礎。 雖然在可行的情況下,喜好設定通常會採用未來最不需要維護 (方法,也即萬用字元方法) 。 

系結至查閱表格的下拉式方塊 - 兩種方法

相關專案,例如員工的主管,會顯示在表單上的下拉式清單或下拉式方塊中。 表單的記錄來源查詢中只需要SupervisorID的外鍵,因為該欄位系結至SupervisorID) (外鍵欄位。 下拉式方塊也會顯示對應的文字值。

具有隱藏識別碼欄和可見 [描述] 欄的兩欄下拉式方塊可執行此作業。 在 [員工表單] 中,[主管] 下拉式方塊會系結至簡單的雙欄查詢。 請參閱 Supervisor 的 RowSource 屬性。

不過,在某些情況下,查閱資料表並沒有個別的主鍵,因此文字值本身就是主鍵。

當可能的值清單小而穩定,例如員工的職稱時,通常稱為「封閉網域」。 變更或新增標題的值並不常見。 封閉式網域查閱資料表是單欄查詢方法的候選項目。

在 [員工] 表單中,[標題] 下拉式方塊會系結至 [標題] 的單欄查詢。 請參閱標題的 RowSource 屬性。 

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×