表达式:
Forms![Frm_MainForm]![Frm_SubForm_1].Requery
Forms![Frm_MainForm]![Frm_SubForm_2].Requery
我使用多种数据库形式。
我可以将这些表达式放在一个单独的模块中,并调用更新数据库不同部分中的表单的过程吗?
例如在模块“ md_Requery”中:
Public UpdateForm()
Forms![Frm_MainForm]![Frm_SubForm_1].Requery
Forms![Frm_MainForm]![Frm_SubForm_2].Requery
End sub
答案 0 :(得分:2)
Public UpdateForm()
在模块的(Delarations)
部分中有效:它声明了名为Variant
的公共UpdateForm
数组。
但是,由于[thing].Requery
是可执行语句,因此该过程的主体是非法的。在过程范围之外,这是非法的。
将声明更改为Public Sub UpdateForm()
,您会注意到右上角的下拉列表将从(Declarations)
变为UpdateForm
,表明您在过程范围内。 / p>
答案 1 :(得分:1)
您可以在模块中使用此公共过程:
Public Sub RequeryForm(frmName As String)
Dim frm As Form
If IsLoaded(frmName) then
Set frm = Forms(frmName)
frm.Requery
End If
End Sub
Public Function IsLoaded(frmName as String)
On Error GoTo Error_Handler
'to call this function, you must put the form in quotes: IsLoaded("frmEntries_EntrySelection")
IsLoaded = (SysCmd(SYSCMD_GETOBJECTSTATE, A_FORM, FormName) <> 0)
Exit_Procedure:
Exit Function
Error_Handler:
Select Case Err.Number
Case Else
MsgBox Err.Number & ", " & Err.Description
Resume Exit_Procedure
Resume
End Select
End Function
这样称呼它:
RequeryForm "Frm_SubForm_1"