在vb6中填充Datalist

时间:2015-05-27 00:59:40

标签: vb6

我是vb6的新手,因为我总是使用vb2010。我正在调试在vb6中运行的库存软件,但无法找到如何使用记录集填充datalist控件。

该软件使用此代码,它使用listbox ...

with rs

    if .RecordCount then
          .MoveLast
          .MoveFirst
          For Counter=1 to .RecordCount
              Me.ListBox1.AddItem rs!ProductName
              .MoveNext
          Next
     End If
     .Close

End With 

但软件数据库现在有数千种产品,程序加载数据的速度很慢 所以我试过了:

Using Datalist

With DataList1
    Set .RowSource = rs
    .ListField = "ProductName"
End With

我的代码运行时没有错误,但控件中不会显示任何数据。

任何人都可以为我解决这个问题。 提前谢谢你

1 个答案:

答案 0 :(得分:0)

问题是MoveLast调用,它只是为了填充RecordCount而遍历整个记录集。请改用:

With rs
    Do While Not rs.eof
         Me.ListBox1.AddItem rs!ProductName
         .MoveNext
    Loop
    .Close
End With 

此代码将通过删除不必要的记录集遍历来加速您的调用,但在列表框中有数千个项目是一个设计/可用性问题,加速负载将无法解决。