首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MS Access VBA .additem到列表框的下标超出范围错误

MS Access VBA .additem到列表框的下标超出范围错误
EN

Stack Overflow用户
提问于 2018-10-16 21:52:03
回答 1查看 214关注 0票数 0

尝试根据组合框中的选定内容向列表框添加值时出现错误。过滤器(?)我为记录集添加的内容并没有告诉lngRows在应用筛选器之后只使用这些项,而不是表中的所有项,我认为这是我的问题的一部分。它在添加时出错,它将值放入框中,然后由于添加空格而出错。有没有办法解决这个问题?

代码语言:javascript
复制
Private Sub Combo5_AfterUpdate()
Set lb = Me.lbSA.Object

    Dim varSelection() As Variant
    Dim i As Long

    lngRows = CurrentDb.TableDefs("tblSA").RecordCount
    varSelection = CurrentDb.OpenRecordset("SELECT PROJ_ID,ShipArea FROM tblSA WHERE PROJ_ID = '" & Me.Combo5.Column(1) & "'").GetRows(lngRows)

    For i = 0 To lngRows - 1
        Me.lbSA.AddItem (varSelection(0, i)) 'error is here
        Me.lbSA.Column(1, i) = varSelection(1, i)
    Next
End Sub
EN

回答 1

Stack Overflow用户

发布于 2018-10-17 03:41:27

不需要数组或列表框对象:

代码语言:javascript
复制
Private Sub Combo5_AfterUpdate()
    Dim varSelection As Recordset
    Set varSelection = CurrentDb.OpenRecordset("SELECT PROJ_ID, ShipArea FROM tblSA WHERE PROJ_ID = '" & Me.Combo5.Column(1) & "'")
    While Not varSelection.EOF
        Me.lbSA.AddItem varSelection(0), 0
        varSelection.MoveNext
    Wend
End Sub

或者只是设置RowSource属性。确保RowSourceType属性设置为表/查询。

代码语言:javascript
复制
Private Sub Combo5_AfterUpdate()
    Me.lbSA.RowSource = "SELECT PROJ_ID, ShipArea FROM tblSA WHERE PROJ_ID = '" & Me.Combo5.Column(1) & "'")
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52837104

复制
相关文章

相似问题

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