Access交流中心

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

不知道那出问题了,大开一个窗体关闭另一个不行了,

yang1906  发表于:2009-07-28 12:48:20  
复制

点击下载此附件

 

Top
yang1906 发表于:2009-07-28 12:49:46

那位大侠帮忙给看看,是那出问题了,语句应该没有错,就不知道窗体那没有设置对,多谢了



钱玉炜 发表于:2009-07-28 13:21:21

把窗体属性里面其他选项卡里面的模式属性设置为否就可以了



周金涛 发表于:2009-07-28 14:04:57
已修改,仅供参考点击下载此附件

点燃一支烟 发表于:2009-07-28 14:11:07
点击下载此附件倒不是模式的问题,单个的代码也没错,只是你调用的事件存在矛盾。

yang1906 发表于:2009-07-28 14:37:05

谢谢各位老师,终于明白了。



点燃一支烟 发表于:2009-07-28 14:37:19

Function IsLoaded(ByVal strFormName As String) As Integer 
    Const conObjStateClosed = 0
    Const conDesignView = 0
   
    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
        If Forms(strFormName).CurrentView <> conDesignView Then
            IsLoaded = True
        End If
    End If  
End Function

 

另外你可以用上述IsLoaded自定义函数判断一下窗体是否被加载(打开),可以在单击事件里面先判断一下,如果要打开的窗体已经打开,则只须关闭其他要关闭的窗体;如果要关闭的窗体本身就没有打开,则无须再对其进行关闭;

调用方法:1、自定义函数放在模块里;

          2、单击事件里面用:   If Not IsLoaded("要判断没有加载的窗体") Then........或用: 

                                If  IsLoaded("要判断加载的窗体") Then.........................



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