Private Sub Form_Load()
  Dim rsTemp As Recordset
  Dim dbTemp As Database
  Dim astr As String
  Set dbTemp = DBEngine(0).OpenDatabase(App.Path + "\学 生.mdb", dbOpenSnapshot)
  astr = "SELECT * FROM 学生; "
  Set rsTemp = dbTemp.OpenRecordset(astr)    If rsTemp.RecordCount > 0 Then
    
         Label1.Caption = rsTemp.RecordCount
    end if
End Sub
rsTemp.RecordCount 获得的值始终为1,为什么,怎么解决?? 

解决方案 »

  1.   

    dao是不知道自己的rsTemp.RecordCount所以都为1
    dim I as interger
    ...
    i=0
    do until rsTemp.eof
     i=i+1
     rsTemp.moveNext
    loop
    Label1.Caption = rsTemp.RecordCount-1
      

  2.   

    如果是adodc控件就可以了
    adodc1.recordset.recordCount
      

  3.   

    rsTemp.last
    Label1.Caption = rsTemp.RecordCount-1
      

  4.   

    rsTemp.movelast
    Label1.Caption = rsTemp.RecordCount
      

  5.   

    我在我的ADODBPrivate Sub Form_Load()
    Set db = New ADODB.Connection
    Set rs = New ADODB.Recordset
    path = App.path & "\jxcun.mdb"
    connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Persist Security Info=False"
    db.ConnectionString = connstr
    db.Open
    rs.Open "select usename from usera", db, adOpenStatic, adLockReadOnly
    Dim i As String
    For t = 0 To Val(rs.RecordCount) - 1
        i = Trim(rs.Fields("usename").Value)
        rs.MoveNext
        Label1.Caption = rs.RecordCount
        Combo1.AddItem i
    Next t
    rs.Close
    db.Close
    End Sub也能正常显示呀!
    能不能这样试一下!
    Label1.Caption = val(rsTemp.RecordCount)
      

  6.   

    你可以用sql语句中count集合函数看一下
      

  7.   

    movenext
    moveprevious   
    再试试看
      

  8.   

    rsTemp.movelast 'rsTemp.RecordCount此时就取得了真实值
    Label1.Caption = rsTemp.RecordCount
      

  9.   

    可以了
    改成adodc控件了谢谢大家了