2009-08-17 3 views
1

여러 범주와 하위 범주가있는 폼을 만들려고합니다.액세스 2007에서 서로를 드롭 다운 목록으로 연결하고 싶습니다.

첫 번째 드롭 다운 (기본 카테고리)에서 선택되는 것과 두 번째 (하위 카테고리)에 표시되는 것 사이의 관계를 만들 수있는 방법이 있습니까?

모든 하위 카테고리를 한꺼번에 나열하고 싶지 않습니다. 메인 카테고리에서 선택한 지정된 것과 관련된 것들만 필요합니다 ....

고마워요!

+0

콤보 상자라고도합니다. –

답변

2

이것은 가장 자주 묻는 액세스 질문 중 하나입니다.

접근법 1 :에서 두번째 콤보 박스의 절, 기준으로서 제 콤보 박스에 대한 참조를 사용

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

(그것은 매개 변수로 제어 기준을 정의하는 것이 중요 두 번째 다시 쿼리 첫 번째 콤보 상자의 AfterUpdate 이벤트에서,

다음) 97 이후 버전의 Access는 액세스의 해당 버전은 97과 동일한 방법으로 널 (null)을 처리하지 못하기 때문에 전에 그랬어 :

Private Sub cmbCategories_AfterUpdate() 
    Me!cmbSubCategories.Requery 
    End Sub 

접근법 2 : 대신, 처음에 대한 참조를 포함하는 첫 번째 콤보 상자의 대한 AfterUpdate에 즉시의 행 원본을 작성하는 두 번째 콤보 상자의 행 원본을 하드와 이어링의 : 나는를하는 경향

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 

을 후자는 첫 번째 콤보 상자로 필터링하는 것 외에도 다른 작업을 수행해야하기 때문에 대부분의 사람들이 첫 번째 방법을 사용하는 것이 더 쉽습니다.

+0

+1 Leacha가 도움이 될 것으로 확신합니다. – Fionnuala

관련 문제