【发布时间】:2017-11-07 23:06:22
【问题描述】:
我有一个最初使用 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
【问题讨论】:
-
你有没有放断点并调试它。如果是,哪个语句失败了?
-
是的,我放了断点并调试它。
-
当 rsPop.EOF = False 时执行设置 lst = lv1.ListItems.Add(, , rsPop!Customer_Number) lst.SubItems(1) = rsPop!Customer_Name rsPop.MoveNext
-
您遇到的错误是什么?