设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 关于对象的一些问题

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-1 16:36:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 williamwangc 于 2013-3-1 16:43 编辑

Sub NewRecordMark(frm As Form)    Dim intnewrec As Integer    intnewrec = frm.NewRecord    If intnewrec = True Then    MsgBox "You're in a new record." _        & "@Do you want to add new data?" _        & "@If not, move to an existing record."    End IfEnd Sub
在以上的实例中我有两个问题。
1、在实例中,form作为参数应该用什么写法来表示?
如:forms("xxx")还是直接xxx
2、这样的对象不存在我应该用哪个关键字作为判断字符?
如:If forms("xxx") Not Exist













分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2013-3-1 16:42:32 | 只看该作者
抑或是IS NOTING? IS NULL?
3#
发表于 2013-3-2 13:08:14 | 只看该作者
1、如果是在窗体上调用公共模块的话,直接在Load事件(或者其它窗体事件中)
Call NewRecordMark(Me)
如果是Forms对象(虽然你这段代码中没有Forms),后面对应的是窗体名称,除非不是作为一个元素来引用。
2、不存在的话,建议用窗体名称来判断。Not Exist或者Nothing我都没用过。IsNull应该是不行的,这个一般是判断字符串的。
4#
发表于 2013-3-3 21:18:39 | 只看该作者
本帖最后由 todaynew 于 2013-3-3 21:21 编辑

1、如果带入的窗体参数是当前窗体,可以直接用me或me.Form;如果带入的窗体是当前窗体的子窗体,可以用me.子窗体控件名.form;如果带入的窗体是另外一个窗体,则可用forms("xxx")。

2、判断带入的窗体是否打开(从函数看,需要对某个打开的窗体进行设置,所以不是判断存在而是判断是否打开),我一般写一个自定义函数来解决:
function FormOpen(formname as string) as boolean
   dim frm as form
   FormOpen=false
   for each frm in forms
       if frm.name=formname then
          FormOpen=true
          exit for
       end if
   next frm
end function

如果要判断系统中是否存在一个窗体需要用AllForms对象来遍历,AllForms包含所有窗体(包括打开和未打开的)。Forms仅包含所有已经打开的窗体。
5#
 楼主| 发表于 2013-3-9 10:59:53 | 只看该作者
感谢版主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-24 14:32 , Processed in 0.081258 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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