首页 > 解决方案 > 将子表单保存过程链接到父表单保存按钮

问题描述

大家好,提前感谢您的支持!

对于我目前正在设计的一个小型数据库项目,我有一个典型的员工表设置和一个一对多表,用于保存这些人所接受的培训。

为了进行编辑,我设置了一个包含员工数据的父表单,并在一个连续的子表单中,链接到父表单,显示相应的培训。

现在我想要的是一个保存过程,它仅在按下父表单上的按钮时发生。对于可管理的“父”数据。但我也想在这个过程中包含子表单(关系)数据。

这可能吗?

我正在尝试通过 VBA 手动设置记录集来填充子表单,基本上使用内存作为缓冲区,但是由于它们始终与基础表保持链接,因此只要更改字段,就会立即保存数据。

然后我尝试将数据缓冲在一个单独的表中,并在用户“保存”后将其转发到原始源。但是,我的数据库分为前端和远程后端文件,我不知道如何在本地而不是在 BE 上拥有缓冲区(我认为这会慢得多)。

那么有人知道如何做到这一点或改进以前的尝试吗?

标签: ms-access

解决方案


绑定表格通常会立即保存更改。如果您想防止立即更改,您可以:

  1. 将子表单设置为不可编辑/锁定的表单:(完全阻止编辑)
  2. 拦截Form_BeforeUpdate(Cancel As Integer)事件以确定是否允许保存。

有几种方法可以做2。这是一个伪/逻辑在您的子表单中

Form_BeforeUpdate(Cancel As Integer)
    If (not savingAllowed) then
        Cancel = true ' Prevents save
        Me.Undo       ' Undos all changes
    End If
End Sub;

显然,您需要savingAllowed在确定保存操作是否被授权的地方扩展它。


推荐阅读