访问 - 防止在不同记录中打开第二个表单

时间:2016-04-27 14:03:30

标签: vba ms-access access-vba

我有一个表单,我可以从中访问另外两个表单。我可以通过点击选定的记录来做到这一点。我想要做的是阻止用户在第一个表单已经打开的任何不同记录中打开第二个表单。到目前为止,我已经尝试了这个(在第一种形式的当前事件中 - 让我称之为主要形式):

If CurrentProject.AllForms("MySecondForm").IsLoaded And CurrentProject.AllForms("MyThirdForm").IsLoaded Then
   If Forms![MySecondForm].Form![ID] = Forms![MyThirdForm].Form![ID] Then
        'do nothing

   Else

   ...

   MsgBox "Error. You cannot open both forms in different records !"

   End If

End If

关于我需要使用哪些事件代码以及如何防止这种情况的想法?

1 个答案:

答案 0 :(得分:0)

解决了,这是我必须做的事情:

  If Not CurrentProject.AllForms("MySecondForm").IsLoaded Then

      DoCmd.OpenForm "MyThirdForm", , , "ID=" & Forms![MainForm].Form![ID]

   ElseIf CurrentProject.AllForms("MySecondForm").IsLoaded Then

      DoCmd.OpenForm "MyThirdForm", , , "ID=" & Forms![MainForm].Form![ID]

      If Forms![MyThirdForm].Form![ID] = Forms![MySecondForm].Form![ID] Then

              'Do nothing

      Else

      MsgBox "Error. You cannot open both forms in different records !", vbCritical
              DoCmd.Close acForm, "MyThirdform"
              Exit Sub

      End If

   End If

如果有人有解决方法可以阻止开放形式,请发帖。此解决方案打开表单,检查记录ID,然后关闭表单,这不完全是完美的。