原理:
打开一个窗体,关闭一些已打开的窗体,由于判断一个窗体是否已打开,需要使用如下方法来判断:
Sub AllForms()
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentProject
' Search for open AccessObject objects in AllForms collection.
For Each obj In dbs.AllForms
If obj.IsLoaded = True Then ' 是打开的窗体
' 其中可用 obj.Name来得到打开窗体的名称 End If
Next obj
End Sub
,为了简单起见,我利用了on error goto 标号
语句,不管窗体是否打开,强行关闭窗体,由于没有打开的窗体执行时会出错,所以利用on error goto 标号,语句跳出,达到简化程序的目的,当然可能还有更好的方法。有其他好方法请发出来,以便大家共享。
Private Sub Command1_Click()
On Error GoTo err1
DoCmd.Close acForm, "a02"
err1:
On Error GoTo err2
DoCmd.Close acForm, "a03"
err2:
On Error GoTo err3
DoCmd.Close acForm, "a04"
err3:
DoCmd.OpenForm "a01"
End Sub