【Access小品】是非难辨--子窗体打开概述
时 间:2015-07-23 13:29:31
作 者:煮江品茶 ID:10802 城市:武汉
摘 要:【Access小品】是非难辨--子窗体打开概述
正 文:
在Access中有两个集合与窗体有关,其一是AllFroms集合对象,该集合的元素由所有窗体组成,与其是否打开的状态无关。另外一个就是Forms集合对象,这个集合是所有用Docmd.OpenForm命令打开的窗体对象所组成。由此,这里就出现了第一个关于窗体是否打开的判断标准,也就是存在于Forms中的窗体为已打开窗体。便也就可以从Forms("窗体名称")或Forms!窗体名称出发,找到窗体上的控件,并对控件的某些属性进行操作。
天下本无事,问题却出在主子窗体的打开上。Docmd.OpenForm命令打开主窗体时,它只将主窗体Add到Forms集合中,而没有理会子窗体,于是我们在Forms中看不到子窗体这个窗体元素。那么子窗体到底打开了没有呢?当然是打开了!不打开你怎么看得见窗体所呈现的内容。你可能说这不对,Forms中没有怎么能算打开呢?不能说你不对,因为你用的判断标准确实存在。可是你是否想到,可能还存在另外的一个判断标准?这个标准就是看窗体的打开事件是否执行了。如果打开事件执行了,窗体就已经被打开了。你可以试试,子窗体的打开事件这个时候是被执行了的,所以我们也可以说子窗体被打开了。
实际上,无论窗体是否存在于Forms中,只要它呈现在你的眼前,便一定会触发窗体打开事件。所以,用窗体的打开事件是否被触发,来作为窗体是否打开的判断标准更具有普适性(即存在于Forms中是窗体打开状态的特例)。不过这个普适性并不能指导你来针对不同情况处理窗体上的控件。能指导你分别情况处理问题的判断标准,还只能依据窗体是否存在于Forms中。也就是说Forms中存在的窗体,可以用Forms("窗体名称")查找其控件,并进行处理;Forms中不存在的窗体,但它作为子窗体已经打开了,则只能通过主窗体中的子窗体控件来逐级找到子窗体中的控件,并进行处理。
你可能觉得论述得太搅合了,看不明白说的是什么。其实论述复杂只是为了炫耀一番,与实际处理问题没什么太大关系。由此,你便不至于被唬住。你只需要记住主子窗体中不要用Forms("窗体名称")或Forms!窗体名称这样的写法去找子窗体控件就行了。至于这种情况下怎么去找,是个简单问题,在此不赘述。
示例:

视图:

Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)
- 统计当月之前(不含当月)的记录数怎...(03.11)