Private Sub Form_Load()
On Error Resume Next
lsUser.View = lvwReport
lsUser.ColumnHeaders(1).Width = 2000
lsUser.ColumnHeaders(1).Text = "客户姓名"
lsUser.ColumnHeaders(2).Width = 1500
lsUser.ColumnHeaders(2).Text = "建档时间"
lsUser.ColumnHeaders(3).Width = 1500
lsUser.ColumnHeaders(3).Text = "开始时间"
lsUser.ColumnHeaders(4).Width = 1500
lsUser.ColumnHeaders(4).Text = "停止时间"
lsUser.ColumnHeaders(5).Width = 4000
lsUser.ColumnHeaders(5).Text = "使用情况"
For t = 1 To 5
lsUser.ColumnHeaders(t).Icon = ImageList1.ListImages(t).Index
Next t
Call execDatabase'建立数据库联接
rs.Open "select * from 客户使用记录表", conn, adOpenStatic, adLockOptimistic
Dim arry
Dim it As ListItem
arry = rs.GetRows
rs.Close
r = UBound(arry, 1)
c = UBound(arry, 2)
Dim i, j As Integer
For i = 0 To r
Set it = lsUser.ListItems.Add(, , arry(0, i), , ImageList1.ListImages(6).Index)
For j = 1 To c
it.SubItems(j) = arry(j, i)
Next j
Next i
call reDatabase '释放掉conn,rs
End Sub为什么我总是只能显示五行的数据?是因为我只有五个字段吗?这个如何解决呢?
你们有没有和这不一样的方法,帮帮看!!!

解决方案 »

  1.   

    r = UBound(arry, 1)
    检查一下r的值是否等于纪录条数啊?
      

  2.   

    你们也可以改为这个程序,你们有没有别的方法也可以。
    我用
    do while not rs.eof 
    ...
    end do
    比如也可以在这里给我添加程序。
    我试过,这样也不行,不知是不是写错了,你们写一下看看。
    非常感谢!!!!
    to:dragon520
    r 为4
    c 为5(但其实我有10条记录啊,为什么只得到5呢?)
      

  3.   

    to:frankwong
    能举一下这样相关的例子吧!!!(对记录可以更新和增加)
    我用clear方法,然后删除后原来的记录还会显示在listview里。
      

  4.   

    程序没有用错,试试这样getrows(20),看c是多少?
      

  5.   

    r = UBound(arry, 1)
    c = UBound(arry, 2)应该为c = UBound(arry, 1)
    r = UBound(arry, 2)
      

  6.   

    to:想不起,正确了。
    非常感谢!!!
    弄错了column和row!!!!
    结贴之前
    能告诉我有什么办法对其记录进行操作,然后刷新显示到listview上。
      

  7.   

    listview只能作为显示用,不能直接修改,你另外做一个form或者就做在listview所在窗体上,提供增、删、改、查功能,更新完数据库后,在修改listview中对应的item,不过这样作比较烦,好处就是完全由自己的代码控制,不易出错。
      

  8.   

    我是准备这样做的,但是为什么我用cloumnheader.clear或者调用listitems.clear后再调用上面的语句后就显示不出来了呢?
    谢谢!!!
    能交个朋友吗?
      

  9.   

    建议你调试程序的时候不要加On error resume next语句,以免屏蔽了一些错误的情况。打开后应该会发现显示不出来的问题,我估计可能会是rs.open这句。