Dim ss As String
dim i as Integer 
list1.clear
If rs.State = adStateOpen Then rs.Close
rs.Open "* from 行政部門 ", cn, adOpenKeyset, adLockBatchOptimistic
If rs.EOF Then Exit Sub
i = 1
rs.movefirst
Do Until rs.EOF
For i = 0 To rs.fields.Count - 1
s=s & rs(i)  
next i
list1.additem s
rs.MoveNext
Loop
  

解决方案 »

  1.   

    这么做不太好吧,试试listview:
    private sub filllistview(rs as adodb.recordset,lsvObj as listview)
    dim oField as field,xItem as ListItem
    dim nfieldcount as integer,nfieldwidth as integer
    screen.mousepointer=vbhourglass
    with lstview
        .columnheaders.clear
        for each oField in rs.fields
            nfieldwidth=textwidth(ofield.name) + iif(ofield.type=dbtext,500,0)
            .columnheaders.add,,ofield.name,nfieldwidth
        next ofield
    end with'add the records here
    with rs
       if not .bof and .eof then
       .move first
       while (not .eof)
           set xItem=lstview.listItems.add(,,cstr(.field(0)))
           for nfieldcount=1 to .fields.count -1
               xItem.subItems(nfieldcount)=.fields(nfieldcount)
           next nfieldcount
           .movenext
       wend
    end with
    set xItem=nothing
    set xItem=nothing
    rs.close
    set rs=nothing
    end sub
      

  2.   

    Dim ss As String
    dim i as Integer 
    list1.clear
    If rs.State = adStateOpen Then rs.Close
    rs.Open "* from 行政部門 ", cn, adOpenKeyset, adLockBatchOptimistic
    If rs.EOF Then Exit Sub
    i = 1
    rs.movefirst
    Do Until rs.EOF
    For i = 0 To rs.fields.Count - 1
    s=s & rs(i)  
    next i
    list1.additem s
    rs.MoveNext
    Loop