表达式:
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
Public UpdateForm()
在模块的(Delarations)
部分有效:它声明了一个名为Variant
的公共UpdateForm
数组。
这使得程序的主体非法,因为[thing].Requery
是一个可执行的语句,这在程序范围之外是非法的。
将声明更改为读取Public Sub UpdateForm()
,您会注意到右上角的下拉列表将从(Declarations)
更改为UpdateForm
,表示您位于过程范围内。
您可以在模块中使用此公共过程:
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"