Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

選取下列任何主題,以瞭解在 Northwind Developer Edition 中管理公司的相關資訊。 

附註: 此頁面在 Access Developer Showcase Edition 上參照

在 Northwind Starter Edition 中, 客戶 是唯一的公司類型。 在開發人員版本中,我們已將它擴展為包括 客戶貨運公司廠商。 

我們也擴充了 [產品 ],以包含多個產品廠商。   

每家公司只能有一種類型:客戶貨運公司廠商。 如需變更公司類型的商業案例,請參閱本文 的 frmCompanyDetail 一節。
'

公司類型和使用位置 

  • 訂單客戶

  • 訂單的貨運公司

  • 採購單的廠商

  • 產品的廠商

此外,[北風開發人員] 版本中的 公司 可以有多個 連絡人
'

功能區中的公司

從功能區選取 [公司] 會在 frmCompanyList中顯示 [Northwind 中的公司]。 

公司清單 - frmCompanyList

在 Northwind 開發人員版本中, frmCompanyList 是分割表單。 分割表單同時提供兩種資料檢視,即 [ 表單檢視 ] 和 [ 資料工作表檢視]。 它也有頁首及頁尾。  在此實作中,我們不會顯示表單檢視。 若不顯示表單檢視,我們將會有一個含有頁首及頁尾的資料工作表。  

以下是我們達成此目標的步驟:  

frmCompanyList中,看不到頁首與資料工作表之間的分割列。 表單內容 [分割表單分割列 ] 設為 [否],因此會隱藏表單檢視。 

分割表單和資料工作表表單就像 Excel 工作表一樣。 它們支援篩選和排序,而且您可以顯示、隱藏或移動欄位或欄。 此外,也可以將欄合計。 

分割表單的頁首及頁尾區段可讓您使用命令按鈕、影像、文字 (標籤) 以及任何其他您想要改善使用者體驗的存取表單控制項。 若要深入瞭解表單和分割表單,您可以從這裡開始。 資料工作表不會顯示頁首及頁尾區段。

若要深入瞭解,請參閱表單簡介建立分割表單。 
'

[公司清單] 表單支援下列五個動作:

  • 套用自訂、預先建立篩選、隨選篩選或兩者

  • 顯示/隱藏欄位

  • 建立標籤

  • 顯示篩選

  • 新增公司

按兩下詳細資料列中的任何位置,即可開啟 [公司詳細資料 ] 表單 (不只是在 [識別碼] 上,就像在其他表單) 一樣。 
'

預先建立篩選和隨選篩選

frmCompanyList表單具有在 Northwind 中篩選公司的機會。  在畫面頂端,您可以使用下列選項按鈕進行篩選:

  • 所有公司 (預設)

  • 僅限客戶

  • 僅限貨運公司

  • 僅供應商

此外,您還可使用資料工作表內建的隨選篩選選項。 任何套用至 [公司清單 ] 表單 (預先建立或隨選) 的篩選,都會在開啟時套用至 frmCompanyDetail 。  

若要將篩選傳遞到另一個表單,您必須先清除表單的篩選字串,只包含功能變數名稱。 請參閱程式碼模組 Open_frmCompanyDetail ,以取得更多有關如何執行此操作的詳細說明,並在 frmCompanyDetail 中查看 Form_Load 如何套用此程式的批註。

我們會透過表單的OpenArgs屬性將篩選資訊傳遞至[公司詳細資料]表單,而不是以條件開啟表單。  您可以 在這裡深入瞭解 OpenArgs。


顯示/隱藏欄位

取 [顯示/隱藏欄位 ] 以開啟含有所有可用欄位清單的對話方塊;您可以核取或取消核取一或多個欄。 選取的版面配置會持續在某個會話到另一個會話,直到部署新版本的應用程式為止。 請參閱顯示或隱藏資料工作表中的欄。 

建立標籤

[建立標籤] 按鈕會開啟 Access 標籤精靈。 在這裡深入瞭解標籤精靈:在 Access 中建立郵寄標籤。 

開啟公司詳細資料

按兩下詳細資料列中的任何位置以開啟 frmCompanyDetail

按一下 [識別碼] 欄位 (設定為超連結) 或按兩下詳細資料列中的任何其他欄位,以開啟所選[公司]的 frmCompanyDetail,並將套用至 [公司清單] 的任何表單篩選傳遞至frmCompanyDetail

公司詳細資料 - frmCompanyDetail

乍看 之下,frmCompanyDetail 看起來可能相當簡單。  不過,並非這樣。  在表單後方的程式碼中,發生許多事!  表單會醒目提示下列動作和功能:

  • 數個命令按鈕和連結

    • 新增公司

    • Email公司清單]

    • 顯示篩選

    • 刪除公司

    • 開啟以位址為基礎的地圖

    • 從超連結開啟網站

  • 在新增/編輯模式中取消或儲存動作

  • 商務規則以控制公司類型何時可以變更

  • 刪除事件
    前的參考完整性檢查 '

Form_Load事件包含下列動作:

  • 使用透過 OpenArgs 傳送到表單的多個參數,以及自訂的 Northwind StringToDictionary 函數

  • 使用OpenArgs 窗體屬性允許使用者在執行訂單時新增公司

  • 使用 GoToRecord 技術新增 新的公司

  • 使用SearchForRecord技術移至在 frmCompanyList上選取的公司

  • 分支/條件執行選項 (請參閱 Form_Load事件)

    • 選項 1 - 案例陳述

    • 選項 2 - 巢狀 If Else

    • 選項 3 – ElseIf

    • 選項 4 - 巢狀 If Else 和 ElseIf
      '

在Form_Current事件中,會發生下列情況: 

  • 透過呼叫 sub ManageFormOptions () ,在執行時間變更子表單標題和來源物件。 這個子模式是從這個表單中的多個位置來稱呼。 
    '

在新增或編輯模式中取消或儲存動作。 

我們的 Access 表單已系結。  這是什麼意思?  來自 Microsoft:「
「系結」表單是直接連線至資料表或查詢等資料來源的表單,可用來輸入、編輯或顯示來自該資料來源的資料。」

使用系結表單時,Access 不會要求您明確地「儲存」您的資料。  當您從一筆記錄移至下一筆記錄時,Access 會自動儲存您的資料。  通常效果與您想要的方式一樣。  但如果使用者必須採取動作來表示他們已準備好儲存,該怎麼辦? 

例如,form frmCompanyDetail 有一個子表單供 連絡人 (sfrmCompanyDetail_Contacts) 。  因此,如果您開始新增或編輯公司資料,假設是電話號碼,然後暫停以修正您在連絡人資訊中所注意到的錯字,會發生什麼情況?  根據預設,當您按一下連絡人記錄時,Access 會儲存您在公司記錄中所做的任何變更, 而這並不是 您想要的。 

在此表單中,我們會顯示一種以公司單筆記錄達成此目標的方法。

使用 [ 取消 ] 按鈕的原因為何? 逸出鍵 會取消 任何已輸入或變更 (但未儲存) 表單上控制項中的資料。 在此狀態下,鉛筆圖示會出現在記錄選取器中, (列) 最左側的灰色垂直線。

不過,按一下 [ 新增公司 ] 按鈕之後,您會發現在開始在新的公司記錄中輸入資料之前,沒有鉛筆圖示。 如果您此時改變新增公司的想法,該怎麼辦? 如果您按下逸出鍵,沒有任何反應,因為您尚未輸入任何資料。 這就是為什麼我們有 [取消] 按鈕的原因。

按一下 [ 取消] 按鈕一律可以運作;只有在您輸入或變更資料時,才能使用逸出鍵。  

如果您開始新增或變更資料,然後關閉表單而不按一下 [儲存] 或 [取消],根據預設,Access 會儲存資料。  

商務規則:
做為公司之北風商務規則,我們希望您明確指出您想要「儲存」。  為了確保這一點,我們必須檢查使用者是否已在Form_BeforeUpdate事件中按一下 [儲存],如果他們沒有按一下 [儲存],請提示使用者指出是否要儲存或取消變更。
'

公司類型變更

商務規則: 如果公司有任何現有的訂單、採購單或是產品的廠商,使用者就無法變更公司類型。 我們已建立 CompanyIsActive () 函數,以判斷上述任何狀況是否存在。 如果是,使用者必須先清除這些參照, (刪除) ,才能變更公司類型。 

此規則僅在此表單中強制執行。  在生產就緒的應用程式中,您不允許使用者直接開啟資料表來變更資料。  在 [北風] 中,我們允許您開啟資料表並執行任何您想要的動作。  這是學習的好方法,但也可讓您自由進行可能違反規則的變更。 

您應該隨時以防禦方式執行程式。 規劃非預期的狀況。 即使公司目前是貨運公司,這並不表示他們在某個時候不是廠商或客戶。 在 [產品廠商 ] 或 [ PurchaseOrder ] 資料表中較舊的記錄中可能會找到他們的識別碼。
'

自訂對話方塊表單。

若要顯示其結果, cboCompanyTypeID_BeforeUpdate 使用對話方塊表單 frmGenericDialog。 當您有許多資訊要顯示時,這可以是標準訊息方塊的絕佳替代方案。 此表單也會與員工表單搭配使用,以達到類似的目的。


刪除參考完整性檢查」  

在 Northwind Starter Edition 中,我們讓 Access 預設行為通知您公司有相關記錄時無法刪除。  

在 Northwind Developer Edition 中,我們會在刪除之前先通知您,而不是接受 Access 預設行為。  我們會使用與變更公司類型相同的函數來執行這項作業;function CompanyIsActive () .

差異在於我們只考慮 訂單 採購單。 如果沒有 訂單 採購單,我們會確認您打算刪除,如果產品 廠商連絡人 適用于您,我們將會刪除。 

Need more help?

Want more options?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×