我有一个表单,我可以从中访问另外两个表单。我可以通过点击选定的记录来做到这一点。我想要做的是阻止用户在第一个表单已经打开的任何不同记录中打开第二个表单。到目前为止,我已经尝试了这个(在第一种形式的当前事件中 - 让我称之为主要形式):
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
关于我需要使用哪些事件代码以及如何防止这种情况的想法?
答案 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,然后关闭表单,这不完全是完美的。