2013-03-12 1 views
1

각 콤보 박스가 선택 될 때마다 3 개의 콤보 박스가 변경되도록 코드를 작성하려고합니다. 예 : 콤보 박스 1에서는 2010 년과 2011 년에 콤보 박스 2를 채운 Urban을 선택한 다음 콤보 박스 3에 휴스턴, 오스틴 등을 채 웁니다. 나는 If 루프를 사용하려고하지만 유효하지 않은 "Invalid Qualifier"오류가 발생합니다. 전체 스크립트에서 사용 되었기 때문에 이해가되지 않습니다. 어떤 도움이라도 좋을 것입니다!VBA 6.0, 코드 선택시 3 개의 콤보 박스 변경 가능! 선택된 선택 변경!

Private Sub UserForm_Initialize() 

    cboStations.Value = "Annual" 
    cboYear.Value = "2012" 

    Dim WorkDB As DAO.Database 
    Dim workRecSetA As DAO.RecordSet 
    Dim workRecSetB As DAO.RecordSet 
    Dim x As Integer 



    Set WorkDB = DBEngine.OpenDatabase("K:\TASS\2 - GEO-DATA PROCESSING SUPPORT\MICHELLE'S WORK_ENTER NOT!!\Work Folder\Map Automation Project\Access Tables\Map_Automation.mdb") 
    Set workRecSetA = WorkDB.OpenRecordset(Name:="select * from Districts order by District_Name", Type:=dbOpenDynaset) 
    Do Until workRecSetA.EOF 
     cboDistrict.AddItem workRecSetA("District_Name") 
     workRecSetA.MoveNext 
    Loop 
    Set workRecSetB = WorkDB.OpenRecordset(Name:="select * from Stations order by Station_Name", Type:=dbOpenDynaset) 
    Do Until workRecSetB.EOF 
     cboStations.AddItem workRecSetB("Station_Name") 
     workRecSetB.MoveNext 
    Loop 

    For x = 2010 To 2015 
     cboYear.AddItem x 
    Next 


End Sub 


Private Sub cmdCancel_Click() 

    frmMapSetUp.Hide 

End Sub 


Private Sub cboStations_Change() 

    Dim cboYear As String 

    If cboStations.Text = "Urban" Then 
     cboYear.AddItem "2010", "2011", "2012" > Here is where I am receiving the error!! 

    End If 


End Sub 

Private Sub cboYear_Change() 

    Dim cboDistrict As String 

    If cboYear.Text = "2010" Then 
     cboDistrict.AddItem "Abilene", "Amarillo", "Austin", "San_Antonio", "Waco", "Wichita_Falls" 
    Else 
     cboYear.Text = "2011" 
     cboDistrict.AddItem "Beaumont", "Houston" 

    Else 
     cboYear.Text = "2012"         cboDistrict.AddItem "Brownwood", "Bryan", "Childress", "Corpus_Christi", "El_Paso", Lubbock, "Odessa", "Yoakum" 
    End If 


End Sub 
+0

이것은 GIS 질문이 아니다. –

+1

Michelle, 당신은 우리의 마크 업 기능을 알기에 충분히 오랫동안 여기에서 활동했습니다. 그들은 매우 빠르고 쉽습니다. 도움말은 처음 질문을했을 때 오른쪽에 나타나며 [faq]를 통해 액세스 할 수 있습니다. – whuber

+0

이 부분은 MS Access와 관련되어있는 것처럼 보이지만, 내가 말할 수있는 한 코드가 실행되는 곳이 아닙니다. 코드를 어디에서 실행하고 있습니까? – Fionnuala

답변

1

귀하의 라인

cboYear.AddItem "2010", "2011", "2012" 

가 유효하지 않습니다. 콤보 상자 조작을 위해 MSDN docs을보십시오.

.AddItem은 하나 또는 두 개의 인수를 취합니다. 첫 번째는 항목이고 두 번째는 항목을 삽입 할 위치를 나타내는 숫자입니다. 나는 '2011'을 숫자로 변환하고 2011 년 위치에 삽입하려고합니다 (물론 존재하지도 않습니다. 왜냐하면 당신의 콤보 상자에 2000 개 이상의 아이템이 없기 때문입니다!) 그리고 흔들 거리는 소리를 내면서 .

시도 분할을 업 :

cboYear.AddItem "2010" 
cboYear.AddItem "2011" 
cboYear.AddItem "2012"