private rs as new adodb.recordset
Private Sub Form_Load()rs.Fields.Append "ID", adVarChar, 50
rs.Fields.Append "Name", adVarChar, 50
rs.openset me.datagrid1.datasource=rs
'可能是這個東西搞的鬼呀.不知道如何是好了.end subPrivate Sub Command1_Click()
 
rs.AddNew
rs.Fields(0) = "ddd"
rs.Fields(1) = "ddd" 
MsgBox rs.recordcountEnd SubPrivate Sub Command2_Click()
 If (Not rs.EOF) And (Not rs.BOF) And rs.RecordCount > 0 Then
   rs.Delete
   If rs.RecordCount > 0 Then
   rs.MoveLast
   End If
   
   MsgBox rs.RecordCount
    
 End If
End Sub
在這里我先點 command1 click   結果 1
然後    command2 click        結果 0
再   command1 click          結果 0   (這不正確呀)
再   command1 click         結果 0    (這不正確呀)有沒有人能給我講一下如何讓我點一下command1 結果變為正確的.

解决方案 »

  1.   

    Private Sub Command1_Click()
     
    rs.AddNew
    rs.Fields(0) = "ddd"
    rs.Fields(1) = "ddd"
    rs.update
    MsgBox rs.recordcountEnd SubPrivate Sub Command2_Click()
     If (Not rs.EOF) And (Not rs.BOF) And rs.RecordCount > 0 Then
       rs.Delete
       rs.update
       If rs.RecordCount > 0 Then
       rs.MoveLast
       End If
       
       MsgBox rs.RecordCount
        
     End If
    End Sub你的两个rs.update都没有加呀
      

  2.   

    怎么在顶层的程序中没有见到 rs.update ?
      

  3.   

    rs.update ,不加数据传个屁!
      

  4.   

    dim rs as new adodb.recordset
    Private Sub Form_Load()
    rs.CursorLocation=adUseclient'使用客户端游标
    rs.CursorType=AdOpenDynamic
    rs.LockType=adLockOptimistic
    rs.Fields.Append "ID", adVarChar, 50
    rs.Fields.Append "Name", adVarChar, 50
    rs.openset datagrid1.datasource=rs
    datagrid1.refreshend subPrivate Sub Command1_Click()
     
    rs.AddNew
    rs.Fields(0) = "ddd"
    rs.Fields(1) = "ddd"
    rs.update'要更新才有用的
    rs.movelast
    rs.movefirst
    MsgBox rs.RecordCount
    End SubPrivate Sub Command2_Click()
      If (Not rs.EOF) And (Not rs.BOF) Then
       rs.Delete
       If rs.RecordCount > 0 Then
       rs.MoveLast
       End If
       
       MsgBox rs.RecordCount
        
     End If
    End Sub
      

  5.   

    同意他们的说法
    应该有rs.update
      

  6.   

    各位,
    "应该有rs.update"這個東西俺早就試過了.
    不管用!!!!!!!!!!!!!!!!!!!!!不知道你回貼子的時候有沒有試下下這個怪像/
    還有那個
    datagrid1.refresh也不行呀看看哪裡有沒有高人呀?
    來幫個忙.
      

  7.   

    我调试过证明
    搂住的情况是真实的我解决的办法是
      当点击Command2 删除完纪录后
      点击Command1添加一条记录,然后双击DataGrid控件,再点击Command1,你会发现.............
      

  8.   

    re:chenyu5188(来自东方的狼)   看他的代码就没错了,这是ADO的自身问题。。
      
       请在rs.recordcount之前用以下两语句,才能得到正确的记录数。
       
       rs.movefirst
       rs.movelast
      

  9.   

    搞定了!!!
    作为良好的习惯rs.Update应该添加,但本例可不加Private rs As New ADODB.RecordsetPrivate Sub Form_Load()rs.Fields.Append "ID", adVarChar, 50
    rs.Fields.Append "Name", adVarChar, 50
    rs.openSet Me.DataGrid1.DataSource = rsEnd SubPrivate Sub Command1_Click()rs.AddNew
    rs.Fields(0) = "ddd"
    rs.Fields(1) = "ddd"' rs.UpdateMsgBox rs.RecordCountEnd SubPrivate Sub Command2_Click()
     If (Not rs.EOF) And (Not rs.BOF) And rs.RecordCount > 0 Then
       rs.Delete
       If rs.RecordCount > 0 Then
       rs.MoveLast
       End If'***********加上这句**************
        rs.MoveFirst
    '********************************   MsgBox rs.RecordCount End If
    End Sub