Dim TempRS As New AdoDb.Recordset
    Dim AdoConn as New AdoDb.Connection
    Set TempRS.ActiveConnection = AdoConn
    Dim Sql as String
    Sql = "SELECT * FROM users WHERE user_id = '123456'"
    
    TempRS.Open Sql, AdoConn, adOpenDynamic, adLockOptimistic, adAsyncFetch------------------
执行上述操作后,TempRS.BOF and TempRS.EOF 总是TRUE,但‘123456’确实存在。
TempRS.RecordCount = "<数据提供程序或其它服务返回 E_FAIL 状态。>"
TempRS.Status = "<BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。>"请教各位:是什么原因引起的啊?如何解决?

解决方案 »

  1.   

    Dim TempRS As New ADODB.Recordset
    Dim AdoConn As New ADODB.Connection
    Dim Sql As StringSql = "SELECT * FROM users WHERE user_id = '123456'"TempRS.CursorLocation = adUseClient
    TempRS.Open Sql, AdoConn, adOpenDynamic, adLockPessimisticIf TempRS.EOF Then MsgBox "没有数据", vbExclamation
      

  2.   

    应是游标的问题,
    在你的数据库连接前加入
    adocnn.cursorlocation=aduseclient '假设adocnn为连接数据库对象
      

  3.   

    1,添加如下代码TempRS.CursorLocation = adUseClientDim TempRS As New AdoDb.Recordset
    Dim AdoConn as New AdoDb.Connection
    2,用这种方法定义不是很好的,可改成
    dim adoconn as adodb.connection
    dim temprs as adodb.recordset  要用时就用SET 语句 
      

  4.   


    加一句这个就行:TempRS.CursorLocation = adUseClient游标为客户端游标
      

  5.   

    TempRS.CursorLocation = adUseClient
      

  6.   

    我看user_id就应该不是‘123456’,应该是查询的数据类型出错改成123456试试
      

  7.   

    其实sql:
    Sql = "SELECT * FROM users ORDER BY user_id"
    同样有问题。VB怎么就这么破?!
      

  8.   

    SELECT * FROM [users] ORDER BY user_id
      

  9.   

    分析如下:
    1:users是否是关键字啊?[users]代替看看
    2:是否TempRS没有声明?加dim TempRs as adodb.recordset
                             set TempRs as new adodb.recordset
      

  10.   

    3:你的AdoConn是否没有连接? 加入:AdoConn.open "........"
      

  11.   

    0、上述Function是为了简化说明问题。
    1、连接是正常的。
    2、user_id 是String类型的,是Primary Key。
    3、关键请注意TempRS的返回值!
    4、怪问题:Sql = "SELECT user_id FROM users WHERE user_id = '123456'"
      TempRS可以正常取值。但是当选择的Column个数太多,若
        Sql = "SELECT user_id,Name,Sex,...(n个Column)... FROM users WHERE user_id = '123456'"
        (n>40),问题就出现了。
    5、后台数据库是MySQL4.0.15,通过ODBC连接。
    6、怀疑是TimeOut问题,但仍未解决。
    7、分值不够可再加。