rsTemp.Open s, cn, adOpenStatic, adLockReadOnly
  i = 0
  Me.ListView1.ListItems.Clear
  Do While Not rsTemp.EOF
          Set itmX = ListView1.ListItems.Add(, , Trim(CStr(rsTemp!dddh) + "")) //老是报类型不匹配错误?为什么
          itmX.SubItems(1) = rsTemp!cpbh
          itmX.SubItems(2) = rsTemp!lx
          itmX.SubItems(3) = Format$(rsTemp!cdata, "yyyy/mm/dd")
          itmX.SubItems(4) = CStr(rsTemp!sl)
          If Not IsNull(rsTemp!sText) Then itmX.SubItems(5) = rsTemp!sText
  loop

解决方案 »

  1.   

    Option Explicit
    Public Rs As New ADODB.Recordset
    Public Conn As New ADODB.Connection
    Public Item As ListItemPrivate Sub Form_Load()
      Dim strConn As String
      strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=LocalHost"
      Conn.CursorLocation = adUseClient
      Conn.Open strConn
      
      With Me.ListView1
         .View = lvwReport
         .ColumnHeaders.Clear
         .ColumnHeaders.Add , , "aaa"
         .ColumnHeaders.Add , , "bbb"
         .ColumnHeaders.Add , , "ccc"
         
         .ListItems.Clear
      End With
      
      If Rs.State <> adStateClosed Then Rs.Close
      Rs.Open "Select * from jobs", Conn, adOpenStatic, adLockOptimistic
      
      Do While Not Rs.EOF
         Set Item = Me.ListView1.ListItems.Add(, , Trim(Rs(0) & ""))
             Item.SubItems(1) = Trim(Rs(1) & "")
             Item.SubItems(2) = Trim(Rs(2) & "")
        Rs.MoveNext
      Loop
      
      Rs.Close
      Set Rs = Nothing
      Conn.Close
      Set Conn = Nothing
    End Sub
      

  2.   

    Trim(CStr(rsTemp!dddh) + "")  //???这是个什么东西啊?LZ你的代码真的很乱....给你个参考代码,参考上面啊
      

  3.   

    daisy8675(莫依) :
      Do While Not rsTemp.EOF
              Set itmX = ListView1.ListItems.Add(, , Trim(rsTemp(0) & "" )) //还是报类型不匹配错误?为什么
      loop
    那些我全部删除了也一样报这种错误一般是什么情况呢
      

  4.   

    那个listview在vb中有 6.0的和5.0的,用5.0没问题,6.0的就有 晕!
      

  5.   

    你把你下面的语句加了没
    下面的Item.SubItems(2) = Trim(Rs(2) & "")或者看你的itmx声明有没有问题我是使用VB6,要么就把你的VB6打上SP6补丁
      

  6.   

    這應該是同時引用了Microsoft Windows Common Controls 5.0 和 6.0 的原因,在listitem前加上類庫名就可以解決.
    Dim itmX As MSComctlLib.ListItem '6.0
    or
    Dim itmX As ComctlLib.ListItem '5.0