代码如下:
strcn = "......"
Set cn1 = New ADODB.Connection
Set rc1 = New ADODB.Recordsetcn1.Open strcn
     
rc1.CursorType = adOpenKeyset
rc1.LockType = adLockOptimistic
rc1.Open "我的数据表", cn1, , , adCmdTable   
rc1.Filter = "字段一='"......"rc1.Delete
rc1.Update
Debug.Print rc1.RecordCount
此处RecordCount一直为0,而且当数据表里记录完全删除后其EOF 和BOF属性都仍为false
请问如何返回正确的记录数?

解决方案 »

  1.   

    你试试这样做,引用ado 
        Dim Con As ADODB.Connection
        Dim rs As ADODB.Recordset
        Set Con = New ADODB.Connection
        strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False"
        Con.Open strCon
        Set rs = New ADODB.Recordset
            
        '删除记录
        strsql="delete from table where id=1"
        rs.Open strsql, Con, adOpenKeyset, adLockOptimistic  
        set rs=nothing
        下面你应该在读一遍,上面其实已经关闭了
        strsql="select * from table "
        rs.Open strsql, Con, adOpenKeyset, adLockOptimistic  
        msgbox rs.recordcount
           
      

  2.   

    cn1.CusorLocation = adUseClient
    cn1.Open strcn
    rc1.Open "我的数据表", cn1, , , adCmdTable   
    rc1.Filter = "字段一='"......"rc1.Delete    '不需要 Update
    rc1.Filter = ""
    rc1.Requery
    Debug.Print rc1.RecordCount
      

  3.   

    我用一个MSHFlexGrid控件绑定rc1,
    Set MSHFlexGrid1.Recordset = rc1
    若用delete方法就不能绑定了啊
      

  4.   

    能不能在delete以后去掉绑定,重新连接一次?
      

  5.   

    使用.RecordCount来返回记录集的个数,必须先设置记录集的游标为客户端游标:
    代码如下:
    strcn = "......"
    Set cn1 = New ADODB.Connection
    Set rc1 = New ADODB.Recordsetcn1.Open strcn
         
    rc1.CursorType = adOpenKeyset
    rc1.LockType = adLockOptimistic
    rc1.CursorLocation=adUseClient'-------------------------->设置客户端游标,RecordCount才能返回正确的记录个数
    rc1.Open "我的数据表", cn1, , , adCmdTable
      

  6.   

    关闭一下,再重新打开
    rc1.close
    rcq.open strsql, Con, adOpenKeyset, adLockOptimistic
      

  7.   

    其实这样就可以了,自己也搞不清为什么前面的方法不行
    strcn = "......"
    Set cn1 = New ADODB.Connection
    Set rc1 = New ADODB.Recordset
    Set cmd1 = New ADODB.Command
    cn1.Open strcn
    strcmd = "delete 我的食物表 from 我的食物表 where 我的食物表.食物名='" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1) & "'"
    Set cmd1.ActiveConnection = cn1
    cmd1.CommandText = strcmd
    cmd1.Executerc1.CursorType = adOpenKeyset
    rc1.LockType = adLockOptimistic
    rc1.Open "我的食物表", cn1, , , adCmdTable
     Debug.Print rc1.RecordCount    
      

  8.   

    偶有一本西安交通大学出版社出的一本讲有关VB的ADO的书,这是偶这辈子看过的最难懂的书,偶看了它不止十遍,结果什么也没学会,参照一些例子,ADO已经弄个差不多了,回头再看这本书,还是看不明白,真是误人非浅啊,不知道哪里有那种能把ADO讲明白的东西
      

  9.   

    ado,使用官方的帮助即可不仅有例子,而且有说明,够了