1:  recordset 对象中的cancel 和 cancelupdate 有什么区别呀?
2:  另外还有一个奇怪的问题,有这么一段程序:
  rszgwh.open ""   
  set adodc1.recordset=rszgwh 
       .......  Private Sub Adodc1_MoveComplete(ByVal adReason As   ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
    If rshkblsk.EOF Or rshkblsk.BOF Or rshkblsk.RecordCount = 0 
        Then Exit Sub  
        .........
在第一次触发MoveComplete事件时是正常的,但在执行了
    rszgwh.requery 
之后,再次调用MoveComplete事件时,就出现了在执行完If 语句之后又重新执行
MoveComplete事件,不知道因为什么?请多多指教:

解决方案 »

  1.   

    执行requery之后,会自动执行 movefirst 然后会再次运行到last 触发 movecomplete
      

  2.   

    cancelupdate:
    放弃所有与指定 Recordset 对象关联的挂起更改,从而恢复上一次 Refresh 方法调用之后的值。cancel:
    取消当前运行的异步执行
      

  3.   

    试试:
      Private Sub Adodc1_MoveComplete(ByVal adReason As   ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
        If adReason = adRsnRequery Then Exit Sub
        If rshkblsk.EOF Or rshkblsk.BOF Or rshkblsk.RecordCount = 0 
            Then Exit Sub  
            .........
      

  4.   

    按照of123()老兄的写上没解决问题,反而在运行If adReason = adRsnRequery Then Exit Sub之后又返回运行Adodc1_MoveComplete,真是不懂了,玄了!