打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何任意记录上进行编辑,然后保存成一条新的记录,同时原记录没有发生改变

问题:

 我在一个ACCESS程序的数据窗口中,首先在窗口中的字段文本框中修改了字段值,然后想通过如下代码在当前的表中新增一条记录:

        DoCmd.RunCommand acCmdSelectRecord    --选择当前记录
        DoCmd.RunCommand acCmdCopy            --复制当前记录
        DoCmd.RunCommand acCmdPasteAppend     --追加记录

但是发现acCmdCopy其实并不是复制当前记录,而是复制当前选择的文本框内容,所以要出错,不知道如何解决?应该是什么DoCmd.RunCommand acCmd********?
如果直接用DoCmd.RunCommand acCmdSaveRecord,就直接覆盖当前记录了,不是我想要的。
我是想在任意记录上进行编辑,然后保存成一条新的记录,同时原记录没有发生改变。

 回答:
 
客户的要求往往非常怪异
 
Private Sub Command4_Click()
    Dim strA As String
    strA = Me.FIELD1.Value
    If Me.Dirty = True And Me.NewRecord = False Then
        DoCmd.RunCommand acCmdUndo
    End If
    DoCmd.GoToRecord , , acNewRec
    Me.FIELD1.Value = strA
End Sub
或者
Private Sub Command5_Click()
    If Me.Dirty = True And Me.NewRecord = False Then
        DoCmd.RunCommand acCmdSelectRecord    --选择当前记录
        DoCmd.RunCommand acCmdCopy            --复制当前记录
        DoCmd.RunCommand acCmdUndo
        DoCmd.RunCommand acCmdPasteAppend     --追加记录
    End If

End Sub
可以使用 Dirty 属性来决定当前记录自从上次保存之后是否修改过。如果记录已保存,Microsoft Access 将 Dirty 属性设置为 False;如果用户更改记录,则该属性将设置为 True。

示例
以下示例在数据更改时将 btnUndo 按钮设为有效。UndoEdits( ) 子程序从文本框控件的 AfterUpdate 事件中调用。单击有效的 btnUndo 按钮会使用 OldValue 属性还原控件值。

Sub UndoEdits()
    If Me.Dirty Then
        Me!btnUndo.Enabled = True    -- Enable button.
    Else
        Me!btnUndo.Enabled = False    -- Disable button.
    End If
End Sub

Sub btnUndo_Click()
    Dim ctlC As Control
        -- For each control.
        For Each ctlC in Me.Controls
            If ctlC.ControlType = acTextBox Then
                -- Restore Old Value.
                ctlC.Value = ctlC.OldValue
            End If
        Next ctlC
End Sub

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
根据编号返回对应记录
ACCESS-VBA编程(1)
access学习过程中收集的一些常用的代码,一起分享学习!
Access删除多条记录并显示信息
超管用的VBA一句话代码
使用用户窗体查找工作表中满足条件的所有记录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服