首页 > 解决方案 > 在主表单中创建新记录时自动将新记录添加到链接表单

问题描述

首先,这个论坛对于开始使用 Access 非常宝贵。这里的每个人都很棒。我已经找到了我遇到的每一个问题的答案,但这个问题让我很困惑。

我有一个嵌入了链接表单的表单。主表格用于新技术案例(“案例”),另一个用于需要针对该案例完成的行动计划(“行动计划”)。我想要设置表单,以便当您第一次在案例中创建新记录(或者您已填充案例中的任何字段)时,将向行动计划添加一个新条目,该条目将声明一个新案例已打开. 基本上只是跟踪案件的第一个动作,也就是案件本身的成立。

我找到了一些 VB 方法来做类似的事情并观看了一些视频,但似乎没有什么与我的特定用例相匹配。我觉得这应该很简单,但我完全卡住了。

我对任何最简单的工作流程持开放态度,但我基本上是在寻找它以在“案例”中创建新记录后立即在“行动计划”中创建第一个记录。我可以有一个专门的按钮来创建第一条记录,不管怎样。有任何想法吗?

表格是什么样子的

标签: vb.netms-accessdatabase-design

解决方案


有几种方法可以解决这个问题。可能我发现的最简单和最具适应性的方法是使用公共事件定义一个类。在我的应用程序启动中创建该对象的实例,然后在更新数据的方法中,引发该事件,最后,在您的第二种形式中,有一个事件处理程序监听该事件并触发您的数据更新

Public Class AppEvent
Public Event DataUpdate(ByVal eventMessage as String)
'EventMessage Could be used for reporting to end user or flow control.  Use it however or add additional params
End Class

然后在 ApplicationEvents.vb

Dim AppEvents as New AppEvent

现在在您的 DataUpdate 方法中,您可以访问该对象并引发事件

My.Application.AppEvents.DataUpdate("Update Message")

在您的第二种形式中,我将为 AppEvents 声明本地成员,使用 WithEvents 并将其设置在 Constructor 方法中并添加事件处理程序以刷新您的数据

WithEvents eventlistner as AppEvent
Public Sub New()
   eventListner = My.Application.AppEvents
End Sub

Private Sub DataUpdated() Handles eventListner.DataUpdate
'Do you data refresh here
End sub

我确信他们是使用 INotifiable 之类的更整洁的方法,但这对我有用


推荐阅读