blic Sub DispGoods(ByVal sql As String, Optional ByVal lngPageIndex As Long = 1, Optional ByVal lngPageSize As Long = -1) '装载商品资料
Dim Item As ListItem, i As Long, lngPageCount As Long
Dim rs As ADODB.Recordset
Set rs = QueryExt(sql)
List1.ListItems.Clear '清空列表视控件
List1.Sorted = False '不排序
If lngPageSize = -1 Then '每页数量若为默认值
rs.PageSize = rs.RecordCount + 1 '设置页大小为记录数加1
Else
rs.PageSize = lngPageSize '设置页大小为指定数量
End If
If Not rs.EOF Then rs.AbsolutePage = lngPageIndex '设置页号
lngPageCount = Int(rs.RecordCount / rs.PageSize) + IIf(rs.RecordCount Mod rs.PageSize = 0, 0, 1) '计算总页数
cmdFirst.Enabled = (lngPageIndex > 1) '设置各按钮的使用状态
cmdPre.Enabled = (lngPageIndex > 1)
cmdNext.Enabled = (lngPageIndex < lngPageCount)
cmdLast.Enabled = (lngPageIndex < lngPageCount)
cmbPage.Enabled = False
If cmbPage.ListCount <> lngPageCount Then '页数列表框中的选项数不等于总页数
cmbPage.Clear '清空组合框
cmbPage.AddItem "[全部]" '首先添加一个“全部”选项
If lngPageSize = -1 Then '页大小为默认值
cmbPage.AddItem "[分页]" '添加一个“分页”选项
cmbPage.ListIndex = 0 '设置显示“全部”(第1项)
Else '设置了页大小
For j = 1 To lngPageCount '循环将页号添加到组合框中
cmbPage.AddItem j
Next
cmbPage.ListIndex = lngPageIndex '当前显示页为指定页
End If
End If
cmbPage.Enabled = True '允许用户选择页号
If Not rs.EOF Then '若记录集不为空
Do While Not rs.EOF And i < rs.PageSize '若记录集不为空,且记录数少于页大小
Set Item = List1.ListItems.Add(, "k" & rs("GoodsID"), rs("GoodsName"), , 1) '设置一个选项
With Item
.SubItems(1) = rs("GoodsPrice") '单价
.SubItems(2) = rs("BarCode") '条码
.SubItems(3) = rs("GoodsNum") '数量
.SubItems(4) = IIf(CLng(rs("AllowSale")) = 1, "允许", "") '允许销售?
...........就是这里报错
.SubItems(5) = GetGoodsState(Item, CLng(rs("GoodsNum")), CLng(rs("CautionNum")), CLng(rs("AllowSale"))) '状态
.SubItems(6) = rs("FactoryName") '厂商名
.SubItems(7) = rs("ProvideName") '供应商名
.Tag = rs("PlanNum") '保存计划进货数量
End With
rs.MoveNext '下一记录
i = i + 1 '记录器增加1
Loop
End If
frmMain.StatusBar1.Panels(1) = "共 " & rs.RecordCount & " 条商品记录, 当前页 " & i & " 条。"
End Sub
Dim Item As ListItem, i As Long, lngPageCount As Long
Dim rs As ADODB.Recordset
Set rs = QueryExt(sql)
List1.ListItems.Clear '清空列表视控件
List1.Sorted = False '不排序
If lngPageSize = -1 Then '每页数量若为默认值
rs.PageSize = rs.RecordCount + 1 '设置页大小为记录数加1
Else
rs.PageSize = lngPageSize '设置页大小为指定数量
End If
If Not rs.EOF Then rs.AbsolutePage = lngPageIndex '设置页号
lngPageCount = Int(rs.RecordCount / rs.PageSize) + IIf(rs.RecordCount Mod rs.PageSize = 0, 0, 1) '计算总页数
cmdFirst.Enabled = (lngPageIndex > 1) '设置各按钮的使用状态
cmdPre.Enabled = (lngPageIndex > 1)
cmdNext.Enabled = (lngPageIndex < lngPageCount)
cmdLast.Enabled = (lngPageIndex < lngPageCount)
cmbPage.Enabled = False
If cmbPage.ListCount <> lngPageCount Then '页数列表框中的选项数不等于总页数
cmbPage.Clear '清空组合框
cmbPage.AddItem "[全部]" '首先添加一个“全部”选项
If lngPageSize = -1 Then '页大小为默认值
cmbPage.AddItem "[分页]" '添加一个“分页”选项
cmbPage.ListIndex = 0 '设置显示“全部”(第1项)
Else '设置了页大小
For j = 1 To lngPageCount '循环将页号添加到组合框中
cmbPage.AddItem j
Next
cmbPage.ListIndex = lngPageIndex '当前显示页为指定页
End If
End If
cmbPage.Enabled = True '允许用户选择页号
If Not rs.EOF Then '若记录集不为空
Do While Not rs.EOF And i < rs.PageSize '若记录集不为空,且记录数少于页大小
Set Item = List1.ListItems.Add(, "k" & rs("GoodsID"), rs("GoodsName"), , 1) '设置一个选项
With Item
.SubItems(1) = rs("GoodsPrice") '单价
.SubItems(2) = rs("BarCode") '条码
.SubItems(3) = rs("GoodsNum") '数量
.SubItems(4) = IIf(CLng(rs("AllowSale")) = 1, "允许", "") '允许销售?
...........就是这里报错
.SubItems(5) = GetGoodsState(Item, CLng(rs("GoodsNum")), CLng(rs("CautionNum")), CLng(rs("AllowSale"))) '状态
.SubItems(6) = rs("FactoryName") '厂商名
.SubItems(7) = rs("ProvideName") '供应商名
.Tag = rs("PlanNum") '保存计划进货数量
End With
rs.MoveNext '下一记录
i = i + 1 '记录器增加1
Loop
End If
frmMain.StatusBar1.Panels(1) = "共 " & rs.RecordCount & " 条商品记录, 当前页 " & i & " 条。"
End Sub
或看下RS.bof,RS.eof的情况
adErrItemNotFound
编号
3265
0x800A0CC1
说明
ADO 无法在对应于应用程序请求的名称或顺序引用的集合中找到对象。