修改保存- MS Access的VBA代码



我不是一个VBA程序员,但我一直在使用以下代码提示用户退出表单之前是否保存更改。代码如下:

Private Sub Form_BeforeUpdate(Cancel As Integer)

   Dim ctl As Control
   On Error GoTo Err_BeforeUpdate

   If Me.Dirty Then
      If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
              "Save Record") = vbNo Then
         Me.Undo
      End If
   End If
Exit_BeforeUpdate:
   Exit Sub
Err_BeforeUpdate:
   MsgBox Err.Number & " " & Err.Description
   Resume Exit_BeforeUpdate
End Sub  

每当我尝试将报告打印为PDF时,它总是提示用户是否保存。我希望上面的代码以这样一种方式编写,它总是提示用户是否保存记录,除非有人想要打印。

有人能帮忙修改这段代码吗?

提前感谢!

当您尝试打印一个"脏"的绑定表单时——这意味着它包含未保存的更改——Access会在打印前自动执行保存。

你面临的问题是,你的表单包含一个Form_BeforeUpdate过程,它询问用户是否存储或丢弃未保存的更改,以及Access处理Form_BeforeUpdate过程,在每次保存操作之前。

打印表单的VBA代码可以先执行保存本身,然后打印…

If Me.Dirty = True Then
    Me.Dirty = False ' saves changes to current record
End If
' insert your print statement here

这种方法的一个可能的问题是,它会强制保存没有用户确认每次你想打印…这可能是不可接受的。

如果你的目标是允许用户打印一个包含未保存数据的表单,你可能不太幸运…假设它是一个绑定的表单。

相关内容

最新更新