用vb6填写数据表

用vb6填写数据表,vb6,Vb6,我不熟悉vb6,因为我总是使用vb2010。我正在调试一个在vb6中运行的清单软件,无法找到如何使用记录集填充数据列表控件 该软件使用此代码,它使用列表框 with rs if .RecordCount then .MoveLast .MoveFirst For Counter=1 to .RecordCount Me.ListBox1.AddItem rs!ProductName

我不熟悉vb6,因为我总是使用vb2010。我正在调试一个在vb6中运行的清单软件,无法找到如何使用记录集填充数据列表控件

该软件使用此代码,它使用列表框

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
我的代码运行时没有错误,但控件中不会显示任何数据

谁能帮我解决这个问题。
提前感谢您

问题在于
MoveLast
调用,该调用仅为了填充
RecordCount
而对整个记录集进行迭代。改用这个:

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

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

旧代码正确加载数据,而您的代码则不能。您可以使用一些批量加载技巧使其更快一些。一个快速的解决方法是问自己这样一个问题:是否有必要将所有产品加载到内存中?