代码:Private Function Tree_Show(SqlTree As String)
Dim rsTree As ADODB.Recordset
Dim key, text As String
Dim nod As Node, rootNode As NodeSet rsTree = New ADODB.Recordset
rsTree.Open SqlTree, conn, 1, 1, 1TreeView.Nodes.Clear
If rsTree.RecordCount > 0 Then
   rsTree.MoveFirst
   Do While rsTree.EOF = False
      '写 TreeView 过程
      ......................
      rsTree.MoveNext
   Loop
Else
MsgBox "找不到相关数据?"
End If
End FunctionTree_Show "select * from client"  时一切正常

Tree_Show "select * from client where id link '*'"
就显示 "找不到相关数据?" 了 ,为什么 rsTree.RecordCount 不大 0 了 ?当然 select * from client where id link '*' 查询语言没有问题
也试过 Set rsTree = conn.Execute(SqlTree) 也不行
求解,谢谢

解决方案 »

  1.   

    “id link”?弄不明白楼主的想法。
      

  2.   

    LINK???
    Tree_Show "select * from client where id link '*'"
    这句的*号要实现什么功能?
      

  3.   

    sorry 一时手快打错了,是 like , 错误不在这里,
      
        select * from client where id like '*'   不是想实现什么功能,测试用的,就是这句查询用在这里    select * from client 正常
     
      再  select * from client where ..... 后面什么都不正常了
      

  4.   

    rsTree.Open SqlTree, conn, 1,3看看
      

  5.   

    where后面才是最重要的,再多贴点代码看看吧。
      

  6.   

    这个问题我碰到过,是recordset的游标设置问题,在VB中recordcount和游标设置有关。
    把游标类型设为adOpenStatic就可以了。
      

  7.   

    用 阿泰 的方法也不行,Private rsTree As ADODB.Recordset
    Private Function Tree_Show(SqlTree As String)
    Dim key, text As String
    Dim nod As Node, rootNode As NodeSet rsTree = New ADODB.Recordset
    'SqlTree = "SELECT * FROM client"
    'rsTree.Open SqlTree, conn, adOpenStatic, adLockPessimistic, adCmdT
    'Set rsTree = conn.Execute(SqlTree)
    'rsTree.Open SqlTree, conn, 1, 1, 1
    rsTree.Open SqlTree, conn, 1, 3TreeView.Nodes.Clear
    Set rootNode = TreeView.Nodes.Add(, , "client", "客户")
    Set rootNode = TreeView.Nodes.Add(, , "agent", "代理")If rsTree.RecordCount > 0 Then
       rsTree.MoveFirst
     
       Do While rsTree.EOF = False
          If rsTree("client_type") = "直客" Then
             key = Trim(rsTree("account")) & "@"
             text = Trim(rsTree("name")) & "(" & Trim(rsTree("account")) & ")"
             Set nod = TreeView.Nodes.Add("client", tvwChild, key, text)
          End If
          If rsTree("client_type") = "代理" Then
             key = Trim(rsTree("account")) & "@"
             text = Trim(rsTree("name")) & "(" & Trim(rsTree("account")) & ")"
             Set nod = TreeView.Nodes.Add("agent", tvwChild, key, text)
          End If
       rsTree.MoveNext
       Loop
    Else
    MsgBox "找不到相关客户"
    End If
    End FunctionPrivate Sub Form_Load()
    Tree_Show "select * from client"  '正常 select * from client where id like '*' 就不正常了Sub end
      

  8.   

    复 “争取早日发光” 朋友,把游标类型设为adOpenStatic就可以了 也试过了,惨....
      

  9.   

    Set rsTree = New ADODB.Recordset
    加下面这句
    rsTree.CursorLocation = adUseClientrsTree.Open SqlTree, conn, 1, 1, 1
      

  10.   

    注意:open后面的参数不要用数值,这样代码很难看懂。Set rsTree = New ADODB.Recordset
    加下面这句
    rsTree.CursorLocation = adUseClientrsTree.Open SqlTree,conn,adOpenKeyset,adLockReadOnly
      

  11.   

    用 LuBingLin(为什么?)  的方法还是不行,MsgBox rsTree.RecordCount  出来还是 0
      

  12.   

    yaka1130(鍇少)  的用 % 是可以的
      

  13.   

    select * from client where id like '*'
    在SQL SERVER 数据库中查询应该也是没有记录的!!!