Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
Rs.Open "select * from Table1", CON, adOpenDynamic, adLockOptimistic
     Do While Not Rs.EOF
         
        msgbox  "當前位置:"  Str(Rs.AbsolutePosition) & "/" & "記錄總數:" & Str(Rs.RecordCount)
        Rs.MoveNext
     Loop

解决方案 »

  1.   

    得到记录总数:
    rs.MoveLast
    rs.recordCount
    具体你查查MSDN
      

  2.   

    Dim Rs As ADODB.Recordset
    Set Rs = New ADODB.Recordset
    Rs.Open "select * from Table1", CON, adOpenDynamic, adLockOptimistic
         Do While Not Rs.EOF
             
            msgbox  "当前位置:"  Str(Rs.AbsolutePosition) & "/" & "记录总数:" & Str(Rs.RecordCount)
            Rs.MoveNext
         Loop
      

  3.   

    msgbox  "当前位置:" & Str(Rs.AbsolutePosition) & "/" & "记录总数:" & Str(Rs.RecordCount)
      

  4.   

    而且还要设置  Ado.CursorLocation = adUseClient
    否则.recordcount返回值为-1
      

  5.   

    不对吧!在adOpenDynamic方式下,AbsolutePostion和RecordCount返回的值都是-1啊,我是说能不能用其它方式来得到当前位置和记录总数!
      

  6.   

    Option Explicit
    Private CON As ADODB.Connection
    Private Sub Form_Load()
         Set CON = New ADODB.Connection
         With CON
             .CommandTimeout = 500
             .ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Program Files\Microsoft Visual Studio\VB98\abc.mdb"
             .CursorLocation = adUseClient
             .Open
         End With
    End SubPrivate Sub Command1_Click()
         Dim Rs As ADODB.Recordset
         Set Rs = New ADODB.Recordset
         Rs.Open "select * from qq", CON, adOpenDynamic, adLockOptimistic
         Do While Not Rs.EOF
             
           msgbox  "当前位置:" & Str(Rs.AbsolutePosition) & "/" & "记录总数:" & Str(Rs.RecordCount)
         Rs.MoveNext
         Loop
         
    End Sub
    以上语句在我的电脑上调试通过了。请将包含adOpenDynamic的语句贴出来。
      

  7.   

    谢谢大家,问题已经解决了,关键是把光标位置设置成adUseClient,就可以了!