用:
Rec.movelast
intReCount=Rec.RecordCount
Rec.movefirst
就OK了。

解决方案 »

  1.   

    昨天刚碰上这问题..
    解决就如上边这位所说的..设定CursorLocation
      

  2.   

    改成下面的应该可以,不用command,而是直接将查询结果送给rec:
    模块:
    Public Conn As New ADODB.Connection '
    Public Rec As ADODB.Recordset
    Public Cmd As New ADODB.Command  
    Public strSql as string '存放 SQL 语句'显示记录列表
    Public Sub FillList()
    strSql = "select name from functionsub"
     Rec.open strsql,conn,adOpenKeyset,adLockPessimistic
    '************************************************
    '改上面这个地方
    '************************************************
    Do While Not (Rec.Eof)
        Form1.List1.AddItem Rec.Fields(0)
        Rec.MoveNext
    Loop
    End Sub'显示记录的详细内容
    Public Sub ShowData(Byval sName As String)
    strSql = "select * from functionsub where name = '" & sName & "'"
    Rec.open strsql,conn,adOpenKeyset,adLockPessimistic
    '***********************************************
    '改上面这个地方
    '***********************************************
    With Form1
        .txtName.Text = Rec.Fields("name")
        .txtLibrary.Text = Rec.Fields("library")
        ....
        .txtSystem.Text = Rec.Fields("system")
    End With
    End Sub初始化:
    Private Sub Form_Initialize()
    Dim strOpen As String
    '初始化连接字符串
    strOpen = "Provider=microsoft.jet.oledb.4.0;Data Source=" & CheckPath(App.Path) & _
    "APIChecker.mdb"
    Conn.Open strOpen  '打开数据库
    'FRec.Open "functionsub", Conn, adOpenStatic, adLockPessimistic
    Cmd.ActiveConnection = Conn '设置 Cmd 对象的活动连接
    End Sub
      

  3.   

    在打开记录集之前定义游标
    conn.CursorLocation=adUseClient