即使记录集里有记录,也经常有recordset.recordcount=-1的情况,具体怎么回事我也不明白。所以我从来不用recordset.recordcount来得到记录数,我用movenext数一遍来得到记录数。

解决方案 »

  1.   

    游标类型设为:adopenkeyset,不要用adopendynamic.
      

  2.   

    recordset.open sql, conn, 1,1orrecordset.open sql, conn, 3,1
      

  3.   

    如下,游标类型改为adopenkeyset
    dim rs as new recordset
    rs.open "select * from a",con,adopenkeyset,...
      

  4.   

    recordset.movefirst
    recordset.movelast
    dim a 
    a=recordset.recordcount
      

  5.   

    给个示例你参考参考Private Sub ComboBox4_GotFocus()
    If CmdSave1.Enabled = True Then Exit Sub
        Dim TempStr As String
        TempStr = ComboBox4.TextDim Tablestring As String
    Tablestring = "select * from Trainer order by no"
    Rs.Open Tablestring, Cn, adOpenDynamic, adLockOptimistic
            ComboBox4.Clear
            If Rs.EOF Then Rs.Close: Exit Sub
            Do While Not Rs.EOF
                ComboBox4.AddItem Trim(Rs.Fields(1).Value) & "|" & Trim(Rs.Fields(0))
                Rs.MoveNext
            Loop
            Rs.Close
     ComboBox4.SelStart = 0
        ComboBox4.SelLength = Len(ComboBox4.Text)
        ComboBox4.Text = TempStr
    End Sub