2009-08-17 9 views
1

私はいくつかのカテゴリとサブカテゴリを持つフォームを作成しようとしています。私はアクセス2007年にお互いにドロップダウンリストにしたい

最初のドロップダウン(メインカテゴリ)で選択されたものと2番目(サブカテゴリ)に表示されるものとの関係を作成する方法はありますか?

すべてのサブカテゴリを一度に表示したくありません。メインカテゴリで選択した特定のものに関連するものだけが必要です。

ありがとう!

+0

コンボボックスとも呼ばれます。 –

答えて

2

これは最もよく尋ねられるアクセスの質問の1つです。

アプローチ1:2番目のコンボボックスのWHERE句内、基準として最初のコンボボックスへの参照を使用する:

PARAMETERS [Forms]![MyForm]![cmbCategories] Long; 
    SELECT SubCategory 
    FROM tblSubCategories 
    WHERE CategoryID = [Forms]![MyForm]![cmbCategories] 
    ORDER BY SubCategory; 

(それがパラメータとして制御基準を定義することが重要ですその後、97後のアクセスのバージョンのAccessこれらのバージョンは97と前がやったのと同じ方法で、ヌルを処理していないため)

、最初のコンボボックスのAfterUpdateイベントでは、第2の再クエリ:

私がやりがち

Private Sub cmbCategories_AfterUpdate() 
    Dim strRowsource As String 

    strRowsource = "SELECT SubCategory FROM tblSubCategories WHERE CategoryID = " 
    strRowsource = strRowsource & Me!cmbCategories 
    strRowsource = strRowsource & " ORDER BY SubCategory;" 

    Me!cmbSubCategories.Rowsource = strRowsource 
    End Sub 

アプローチ2:代わりに最初の言及を含むことが2番目のコンボボックスの値集合ソースを配線するの、最初のコンボボックスのAfterUpdateでオンザフライの値集合ソースを書きますなぜなら、最初のコンボボックスにフィルタリングするだけではなく、他の作業を頻繁に行う必要があるからです。しかし、ほとんどの人が最初のアプローチをとる方が簡単でしょう。

+0

+1私はLeachaがこれが役立つと確信しています。 – Fionnuala

関連する問題