【问题标题】:Intercepting automatic save in Microsoft Access拦截 Microsoft Access 中的自动保存
【发布时间】:2011-08-24 02:43:53
【问题描述】:

我有一个 MS-Access 表单,其中包含 3 层嵌套表单。第二种形式有两个文本框——名字和姓氏。出于某种奇怪的原因,一旦用户开始输入名字,表单就会尝试触发保存。

我怎样才能知道谁/什么/哪里触发了保存?

我放入了一个 Form_BeforeInsert 处理程序,我可以在那里截获,但调用堆栈没有指出事件是从哪里触发的。

有什么想法吗?

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    当您将焦点从父窗体上的控件切换到子窗体上的控件时,如果父窗体的任何绑定控件包含未保存的值,则该焦点切换会触发父窗体的当前记录的保存。我认为没有任何方法可以防止或推迟这种行为。您必须允许记录保存或放弃更改。正如@woliveirajr 建议的那样,您可以拦截更新前的表单事件以询问用户是保存还是丢弃。您可以对 Before Insert 事件执行相同的操作。

    【讨论】:

      【解决方案2】:

      来自http://help.lockergnome.com/office2/Disable-AutoSave-MS-Access--ftopict149090.html

      “自动保存”是指将焦点更改为时保存的记录 另一个记录?如果是这样,那么没有内置的方法可以“关闭它”。 但是,将一些代码放入表单的 BeforeUpdate 事件中很容易:

      If MsgBox("Do you want to save changes?", vbYesNo) = vbNo Then
      Cancel = True
      Me.Undo
      End If 
      

      也许您不想询问用户是否保存它,所以 Me.Undo 行会这样做。

      【讨论】:

        猜你喜欢
        • 2013-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-21
        • 1970-01-01
        • 2023-03-26
        相关资源
        最近更新 更多