首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA 6.0,代码更改3个组合框后选择每个!已调用选择更改!

VBA 6.0,代码更改3个组合框后选择每个!已调用选择更改!
EN

Stack Overflow用户
提问于 2013-03-13 03:53:54
回答 1查看 351关注 0票数 1

我正在尝试写代码,有3个组合框改变后,每个选择。例如:在combobox 1中,他们选择城市,用2010和2011填充combobox 2,然后用休斯顿、奥斯汀等填充combobox 3。我试图使用If then循环,但我得到了“无效限定符”的错误,我不理解它,因为它是有效的,它在整个脚本中都被使用过。任何帮助都是最好的!

代码语言:javascript
复制
    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
EN

回答 1

Stack Overflow用户

发布于 2013-03-13 10:12:54

你的产品线

代码语言:javascript
复制
cboYear.AddItem "2010", "2011", "2012"

是无效的。看一下操作组合框的MSDN docs

.AddItem接受一个或两个参数-第一个是项,第二个是指示插入项的位置的数字。我敢猜它是在把' 2011‘转换成一个数字,试图把它插入位置2011(当然,这个位置并不存在,因为你的组合框中没有2000+项!)然后抛出一个摇摆。

试着拆分一下:

代码语言:javascript
复制
cboYear.AddItem "2010"
cboYear.AddItem "2011"
cboYear.AddItem "2012"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15372763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档