首页 > 解决方案 > 使用具有多行的 sql 查询记录集填充多列列表框

问题描述

Private Sub Combo13_AfterUpdate()
    Dim v1 As Variant: Dim i,i3, i1, i2 As Integer: Dim rst As Recordset
    v1 = Combo13.Value  'combo13 is the list box
    Set v1 = CurrentDb("Bills")   'bills is the table name
    Set rst = CurrentDb.OpenRecordset("select *  from bills where billnumber = " & Combo13.Value & ";")
    i1 = "select count(*) from bills where billnumber = " & Combo13.Value & ")"
    i2 = rst.Fields.Count
    For i = 1 To i1
        For i3 = 1 To 12
        With List6
             .AddItem rst.Fields(i2).Value 
              rst.MoveNext
        End With
        Next i2
    Next i1
    Set rst = Nothing   
End Sub

标签: vba

解决方案


你的问题需要很多改进也就是说,这是一个语法错误

i1 = "select count(*) from bills where billnumber = " & Combo13.Value & ")"

关闭)是不正确的语法

也是i1一个字符串 - 字符串中的查询没有在任何地方执行 - 您需要执行并i1从结果记录集中提取值,类似于上一行的代码... CurrentDb.OpenRecordset ...

Dim i,i3, i1, i2 As Integer仅声明i2为整数。如果您希望将所有内容都声明为整数,则应该是

Dim i As Integer,i3 As Integer, i1 As Integer, i2 As Integer

推荐阅读