Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

VBA中如何关闭上一个打开的窗口

maswhs  发表于:2010-06-29 13:25:26  
复制

VBA中如何关闭上一个打开的窗口,在主窗口中有4个按钮,每点一个均会打开一个窗口,为防止占用,所以想在点第二个按钮时自动关闭上一个空口,主窗口不关.

 

Top
王樵民 发表于:2010-06-29 14:26:03

做了一个简单的示例,供参考,请参见附件

 

点击下载此附件

王樵民 发表于:2010-06-29 14:51:59

原理:

打开一个窗体,关闭一些已打开的窗体,由于判断一个窗体是否已打开,需要使用如下方法来判断:

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



总记录:2篇  页次:1/1 9 1 :