VB6 使用 adodb 记录集填充列表框
VB6 populate a list box using adodb recordset
我有一个原来使用Listview 控件的窗体,但我需要将其更改为Listbox 控件。现在这是用于列表视图的原始代码。我正在尝试更改它以使用 adodb 记录集填充列表框,但不断出现错误。 lv1 是列表框 1; lv2 是列表框 2。列表框没有列表项。
Private Sub PopulateListView()
Dim cnPop As ADODB.Connection
Dim rsPop As ADODB.Recordset
Dim lst As ListItem
Dim lngRecs As Long
On Error GoTo ErrPopulate
Set cnPop = New ADODB.Connection
cnPop.CursorLocation = adUseClient
cnPop.Open gcnORA
Set rsPop = New ADODB.Recordset
rsPop.Open sSQL, cnPop, adOpenDynamic, adLockReadOnly
lv1.ListItems.Clear
Do While rsPop.EOF = False
Set lst = lv1.ListItems.Add(, , rsPop!Customer_Number)
lst.SubItems(1) = rsPop!Customer_Name
rsPop.MoveNext
Loop
If rsPop.RecordCount > 0 Then
SelectButtons True
End If
With lblCount
.Caption = Format((rsPop.RecordCount), "#,##0") & IIf((rsPop.RecordCount) <= 1, " Customer", " Customers") & " found"
.Refresh
End With
rsPop.Close
cnPop.Close
Set rsPop = Nothing
Set cnPop = Nothing
Exit Sub
ErrPopulate:
MsgBox Err.Description, vbCritical, "Populate Error"
End Sub
一个列表视图可以有多个列,您显然在以前的列表视图中至少有两列:客户编号和客户名称。
一个列表框只有一列。您需要决定如何将您的两列数据 display/add 添加到列表框。不要被列表框的列 属性 搞糊涂了,当设置为多列时,控件仍然只有一列数据 - 它只是水平蛇形滚动而不是垂直滚动。
正在将项目添加到列表框:
lv1.Additem rsPop!Customer_Name
列表框文档:VB6 Listbox
我有一个原来使用Listview 控件的窗体,但我需要将其更改为Listbox 控件。现在这是用于列表视图的原始代码。我正在尝试更改它以使用 adodb 记录集填充列表框,但不断出现错误。 lv1 是列表框 1; lv2 是列表框 2。列表框没有列表项。
Private Sub PopulateListView()
Dim cnPop As ADODB.Connection
Dim rsPop As ADODB.Recordset
Dim lst As ListItem
Dim lngRecs As Long
On Error GoTo ErrPopulate
Set cnPop = New ADODB.Connection
cnPop.CursorLocation = adUseClient
cnPop.Open gcnORA
Set rsPop = New ADODB.Recordset
rsPop.Open sSQL, cnPop, adOpenDynamic, adLockReadOnly
lv1.ListItems.Clear
Do While rsPop.EOF = False
Set lst = lv1.ListItems.Add(, , rsPop!Customer_Number)
lst.SubItems(1) = rsPop!Customer_Name
rsPop.MoveNext
Loop
If rsPop.RecordCount > 0 Then
SelectButtons True
End If
With lblCount
.Caption = Format((rsPop.RecordCount), "#,##0") & IIf((rsPop.RecordCount) <= 1, " Customer", " Customers") & " found"
.Refresh
End With
rsPop.Close
cnPop.Close
Set rsPop = Nothing
Set cnPop = Nothing
Exit Sub
ErrPopulate:
MsgBox Err.Description, vbCritical, "Populate Error"
End Sub
一个列表视图可以有多个列,您显然在以前的列表视图中至少有两列:客户编号和客户名称。
一个列表框只有一列。您需要决定如何将您的两列数据 display/add 添加到列表框。不要被列表框的列 属性 搞糊涂了,当设置为多列时,控件仍然只有一列数据 - 它只是水平蛇形滚动而不是垂直滚动。
正在将项目添加到列表框:
lv1.Additem rsPop!Customer_Name
列表框文档:VB6 Listbox