在导航子表单之间切换时保持对记录的关注

时间:2017-07-14 19:39:20

标签: vba forms ms-access access-vba

我开始为我办公室的各个部门开发用户界面,以支持查看和编辑客户记录。

我有一个导航表单,每个标签都是数据库中的一个单独的表。一个是客户特定信息,如SSN,名/姓等。下一个是地址,以下是联系信息,订单等。

第一种形式是他们选择客户的地方。以下所有表格将取决于他们在此选择的人。我需要能够保留第一个表单中的Record ID,因为它们在其他地方导航。目前,每次失去焦点时,表单都会重置。

有没有办法启用此功能?以下表格将根据他们在第一对中选择的内容进行过滤。

2 个答案:

答案 0 :(得分:0)

Record ID存储在表单的标记属性中。

然后:

  • 如果要加载新表单,您可以将其传递到表单的.OpenArgs属性。
  • 如果加载子表单,您可以通过.Parent.Tag属性获取它。

用户选择记录:

  Me.Tag = Me![Record ID]

打开新表格:

'Open form
DoCmd.OpenForm "frmName", acNormal, , , acFormPropertySettings, acWindowNormal, Me.Tag

'Filter Form
Private Sub Form_Load()
    With Me
        If Not IsNull(.OpenArgs) Then
            .Filter = "[Record  ID]=" & .OpenArgs
            .FilterOn = True
        End If
    End With
End Sub

加载子表单:

'Filter Form
Private Sub Form_Load()
    With Me
        If Not IsNull(.Parent.Tag) Then
            .Filter = "[Record  ID]=" & .Parent.Tag
            .FilterOn = True
        End If
    End With
End Sub

最后,如果在表单之间导航,请将其存储在每个表单的标记属性中。

答案 1 :(得分:0)

虽然未使用导航表单实现,但有关同步子表单的文章和完整演示如下:

Synchronizing Multiple Subforms in Access