1

それぞれの選択時に 3 つのコンボボックスを変更するコードを作成しようとしています。例: コンボボックス 1 では、コンボボックス 2 に 2010 と 2011 を入力するアーバンを選択し、コンボボックス 3 にヒューストン、オースティンなどを入力します。If then ループを使用しようとしていますが、「無効な修飾子」というエラーが表示されます。これは、スクリプト全体で使用されている有効であるため、理解できません。どんな助けでも素晴らしいでしょう!

    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
4

1 に答える 1

1

あなたのライン

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

無効です。コンボ ボックスの操作については、 MSDN のドキュメントを参照してください。

.AddItem1 つまたは 2 つの引数を取ります。最初の引数は項目、2 番目の引数は項目を挿入する場所を示す数値です。「2011」を数値に変換し、2011 の位置に挿入しようとしていると推測する危険があります (コンボ ボックスに 2000 個以上のアイテムがないため、もちろん存在しません)。 .

それを分割してみてください:

cboYear.AddItem "2010"
cboYear.AddItem "2011"
cboYear.AddItem "2012"
于 2013-03-13T02:12:53.873 に答える