设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1422|回复: 6
打印 上一主题 下一主题

[窗体] [求助]自动关闭窗体的方法

[复制链接]
跳转到指定楼层
1#
发表于 2003-5-11 05:21:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在程序运行过程中,只能有一个窗体出现,即当我打开打一个窗体时,能自动判断先前是否有已打开的窗体,若有则关闭它。请问实现这过程的VBA代码应如何编写?请不吝赐教。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-5-11 19:29:00 | 只看该作者
暂时只想到这个方法,遍历所有窗体,更好的方法应该是遍历所有已打开的窗体,但不知道有没有那种集合。

Private Sub Form_Open(Cancel As Integer)
    Dim MyFrm
    For Each MyFrm In CurrentProject.AllForms
        If MyFrm.IsLoaded = True And MyFrm.Name <> Me.Name Then
            DoCmd.Close acForm, MyFrm.Name
        End If
    Next
End Sub


[此贴子已经被作者于2003-5-11 12:39:32编辑过]

3#
 楼主| 发表于 2003-5-11 20:36:00 | 只看该作者
李大侠,我试了一下你给出的程序,要把 lhl.IsLoaded 换成 MyFrm.IsLoaded 就可以了,否则会提示变量未定义。谢谢你了。
4#
发表于 2003-5-11 20:40:00 | 只看该作者
是我的错,不好意思
5#
发表于 2003-5-11 21:43:00 | 只看该作者
请问,上述代码能够完成要求吗?比如我开了10个其他窗体,打开这个窗体的时候要关闭其他10个?好像不行吧?

我记得以前曾经讨论过,是在2002年9-10月份左右吧


[此贴子已经被作者于2003-5-11 13:43:53编辑过]

6#
发表于 2003-5-11 21:54:00 | 只看该作者
可以关闭所有打开的窗体,不只十个,只是是打开的都会把它关闭
7#
发表于 2011-6-9 07:58:59 | 只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-10 19:41 , Processed in 0.122812 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表