有点苦苦挣扎,我有一个数据表表格,其中列出了每条记录的ID和其他信息。到目前为止,我已经找到了一些VBA代码,它将每个ID作为超链接打开并将其传递给另一个表单。
我遇到的问题是我希望在弹出窗口或模态窗口中打开表单,到目前为止我的代码是:
Private Sub ID_Click()
Dim varWhereClause As String
varWhereClause = "ID = " & Me!ID
DoCmd.OpenForm "Copy Of test", , , varWhereClause
End Sub
答案 0 :(得分:7)
DoCmd.OpenForm "Copy Of test", , , varWhereClause, ,acDialog
虽然这会弹出和模态。
答案 1 :(得分:4)
acDialog
和.PopUp
的一个小缺点是表单在访问主窗口外面作为窗口打开。这就是为什么我希望尽可能只使用.Modal
。
如果您只是想阻止其他打开的表单,您甚至可以在表单的公开活动中临时执行Me.Modal = True
。
.Modal
的缺点是它不会等待。 DoCmd.OpenForm , , , , , acDialog
在表单关闭之前不会返回。这种同步调用有时非常有用。
要在访问主窗口中执行 之内的acDialog/PopUp
呼叫,您可以在表单中使用一些技巧:
Private bFormOpen As Boolean
Public Sub ShowModal()
SetFocus ' Make the form visible
On Error GoTo ForcedClose
bFormOpen = True
Do While bFormOpen ' Wait until the form is closed
Sleep 50
DoEvents
Loop
ForcedClose:
Exit Sub
End Sub
Private Sub Form_Unload(Cancel As Integer)
bFormOpen = False
End Sub
您可以像这样实例化您的表单:
Dim f As New Form_Name
f.Modal = True
Call f.ShowModal
Set f = Nothing