文章編號: 289670 - 上次校閱: 2006年9月6日 - 版次: 7.1

如何在 Access 2002 或 Access 2003 中同步處理表單上的兩個下拉式方塊

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
中級使用者:必須具備基本巨集、編碼以及交互操作技能。

本文適用於 Microsoft Access 資料庫 (.mdb) 和 Microsoft Access 專案 (.adp)。

如需本文對應到 Microsoft Access 2000 版本的相關內容,請參閱編號為 209595? (http://support.microsoft.com/kb/209595/ ) 的知識庫文件。
如需本文對應到 Microsoft Access 97 版本的相關內容,請參閱編號為 97624? (http://support.microsoft.com/kb/97624/ ) 的知識庫文件。

在此頁中

全部展開 | 全部摺疊

結論

本文將告訴您,如何同步處理兩個下拉式方塊,以便在選取第一個下拉式方塊中的項目時,讓該選取項目限制第二個下拉式方塊的選擇。

注意 本文將說明範例檔 FrmSmp00.mdb 中所示範的技巧。 如需有關如何取得此範例檔的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
233324? (http://support.microsoft.com/kb/233324/ ) The Microsoft Access 2000 sample forms database available in Download Center

其他相關資訊

下列範例會使用 Northwind.mdb 範例資料庫。第一個下拉式方塊會列出可用的產品類別,第二個下拉式方塊則列出在第一個下拉式方塊中所選取類別下提供的產品。

Microsoft 僅提供示範性的程式設計範例,不做任何明示或默示的保證。其中包括 (但不限於) 其適售性與適合某特定用途之默示擔保。本文將假設您對於示範所用的程式設計語言,以及用於建立和偵錯程序的工具相當熟悉。Microsoft 技術支援工程師可以協助說明特定程序的功能,但不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。
  1. 開啟範例資料庫 Northwind.mdb。
  2. 建立不以任何資料表或查詢為基礎、並包含下列下拉式方塊的新表單,然後將該表單儲存為 [類別與產品]。
    下拉式方塊 1
       -------------------------------
    名稱:類別
    資料來源類型:資料表/查詢
    資料來源:類別
    欄數:  2
    欄寬度: 0";1"
    結合欄位:  1
    AfterUpdate:[事件程序]
    
    下拉式方塊 2
       --------------------------
    名稱:產品
    資料來源類型:資料表/查詢
    欄寬度: 2"
    寬度:        2"
    						
    注意:如果是在 Access 專案中,[資料來源類型] 將是 [資料表/視圖/預存程序]。
  3. 將下列程式碼加入 [類別] 下拉式方塊的 AfterUpdate 事件程序中:
    Me.Products.RowSource = "SELECT ProductName FROM" & _
       " Products WHERE CategoryID = " & Me.Categories & _
       " ORDER BY ProductName"
    Me.Products = Me.Products.ItemData(0)
    					
  4. 在 [表單] 檢視中,檢視 [類別與產品] 表單。請注意,在第一個下拉式方塊中選取類別時,第二個下拉式方塊立即更新,僅列出該選取類別所提供的產品。

注意

在此範例中,第二個下拉式方塊則會填入 SQL 陳述式的結果。此 SQL 陳述式會找到具有 CategoryID 而與第一個下拉式方塊中所選取類別相符的所有產品。

只要在第一個下拉式方塊中選取類別,AfterUpdate 屬性就會執行事件程序,而設定第二個下拉式方塊的 RowSource 屬性。如此即可更新第二個下拉式方塊中所提供產品的清單。如果沒有這個執行程序,第二個下拉式方塊中的內容就不會變更。

這篇文章中的資訊適用於:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
關鍵字:?
kbprogramming kbvba kbhowto KB289670
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。