设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 将OpenForm直接写成带Form对象返回值的函数

[复制链接]
跳转到指定楼层
1#
发表于 2012-6-15 17:44:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 layaman_999 于 2012-6-15 18:01 编辑

函数模块
Function OpenF(FormName As String, Optional View = acNormal, Optional FilterName = Null, Optional WhereCondition = Null, _
Optional DataMode = acFormPropertySettings, Optional WindowMode = acWindowNormal, Optional OpenArgs = Null) As Form
On Error GoTo cuowu

DoCmd.OpenForm FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs

If CurrentProject.AllForms(FormName).IsLoaded = True Then
  Set OpenF = Forms(FormName)
Else
  Set OpenF = Nothing
End If

Exit Function
cuowu:
Set OpenF = Nothing
MsgBox "对象[" & FormName & "]无法加载!"

End Function
===================
调用方法1(直接给值到窗体变量):
Dim Frm As Form
Set Frm = OpenF("窗体3")
If Frm Is Nothing Then Exit Sub
Frm.Caption = "哈哈哈" '设置窗体的其他属性
=============
调用方法2(窗体无法加载则不执行后面的代码):
if OpenF("窗体3") Is Nothing Then Exit Sub
==============
调用方法3(简单的)
call OpenF("窗体3")
================

注意:以上方法只能在代码中使用,如果在按钮或者其他控件的事件属性中直接写 =OpenF("窗体3")则会出错,那就要再建立一个返回String的函数:Function OpenFA(.......)  As String,里面的代码做点小小修改,具体调整非常简单,就不再啰嗦了==================
写成函数可极大的简化代码,并且减少出错的几率)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 12:48 , Processed in 0.088380 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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