我有一个窗体FORM1,上面有一个TEXT文本框,一个COMMAND按钮,代码如下
Dim WithEvents rs As ADODB.RecordsetPrivate Sub COMMAND_Click()
     If Not rs.EOF Then rs.MoveNext
End SubPrivate Sub Form_Load()
    Set rs = New ADODB.Recordset
    rs.Open "select id,name from unit", Cn, adOpenKeyset, adLockOptimistic
    Set Text.DataSource = rs
    Text.DataField = "name"
    
End SubPrivate Sub Form_Unload(Cancel As Integer)
    rs.Close
End SubPrivate Sub rs_WillChangeField(ByVal cFields As Long, Fields As Variant, adStatus _
 As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
    if msgbox("是否保存您的修改!",vbyesno)=vbNo then
          adStatus = adStatusCancel
    end if
End Sub
我想实现的效果是,当我修改TEXT中的内容后,按COMMAND到下一记录时,提示是否保存修改,选"否"则不保存到下一条记录,选"是"则保存后到下一条记录,但我的代码有些问题,请指导

解决方案 »

  1.   

    Private Sub COMMAND_Click()
         rs.update
         If Not rs.EOF Then rs.MoveNext
    End Sub
      

  2.   

    不行啊,当按“是”后记录没有移动,需要再点一下COMMAND才能到一下条记录
    加了Rs.update 跟没加是一样的效果
      

  3.   

    Private Sub COMMAND_Click()
        if text1.datachanged then 
            msgbox ....
        end if
    End Sub
      

  4.   

    或者
    Private Sub COMMAND_Click()
        if (rs.status and AdRecModified) = AdRecModified then 
            msgbox ....
        end if
    End Sub如果不在command_click里面判断,可以在rs_willmove事件里面判断,
    反正跟changefield没关系