设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: kevindeng
打印 上一主题 下一主题

[窗体] [求助]如何判断窗体是用Docmd.OpenForm方法用acDialog参数打开的

[复制链接]
11#
 楼主| 发表于 2006-6-2 22:53:00 | 只看该作者
以下是引用fan0217在2006-6-1 19:30:00的发言:
你有何用途呢?

用途是这样的:

FORM2有一组合框的行来源是FORM1的数据源,当用户在FORM2中输入这个组合框数据的时候如果发现数据还没添加到下拉列表的时候可以双击此组合框用acDialog方式打开FORM1进行添加数据,FORM1数据添加完毕时关闭刷新FORM2组合框的行来源并直接把刚才添加的数据填到FORM2的组合框中.

因为在正常状态下打开FORM1的时候是不需要做上面最后一项操作的,所以在FORM1关闭的时候对FORM1的打开模式做个判断,如果是acDialog就做那项操作.

其实是可以做一个全局的变量来判断FORM1是不是在FORM2双击组合框是打开的,但是我觉得如果是能判断FORM1的打开模式的话比设置全局变量要方便实施
12#
发表于 2006-6-2 23:11:00 | 只看该作者
判断FORM1是不是在FORM2双击组合框是打开的,参考这个例子

http://www.office-cn.net/vvb/dispbbs.asp?boardid=2&replyid=14390&id=40663&page=2&skin=0&Star=2

13#
发表于 2006-6-3 04:49:00 | 只看该作者
引用11楼的话:

“因为在正常状态下打开FORM1的时候是不需要做上面最后一项操作的,所以在FORM1关闭的时候对FORM1的打开模式做个判断,如果是acDialog就做那项操作.
因为在正常状态下打开FORM1的时候是不需要做上面最后一项操作的,所以在FORM1关闭的时候对FORM1的打开模式做个判断,如果是acDialog就做那项操作.”


为了解决这个问题,可以做两个 form1 ,除了窗体名称不同,其余一模一样就可以了。

正常打开和acdialog打开来添加刷新form2数据的时候,两次并不干扰的。

========================================================================
14#
发表于 2006-6-3 04:58:00 | 只看该作者
也不需要增加一个form ,直接判断form1有没有打开,如果有,关闭form1 再用acDialog模式打开

没有就用acDialog打开

点击这里给我发消息

15#
发表于 2006-6-3 07:26:00 | 只看该作者
两种方法
1.如果你的组合框是绑定到表,则只需使用acDialog打开添加窗体,然后在docmd.Openform,,,,,AcDialog后面加上 组合框.Requery就可以刷新数据,这个刷新代码肯定在添加窗体关闭后才执行的,因为添加窗体是模式打开的,窗体未关闭,不会执行后面的代码

2.如果你的组合框是逐项用代码添加项目的.则也可上面同样的方法,只是添加窗体需要返回刚添加的项目,然后在docmd.Openform,,,,,AcDialog后面加上 插入到组合框的代码.

16#
 楼主| 发表于 2006-6-3 16:51:00 | 只看该作者
TO: 13楼

实在不想再做一个窗体,因为在程序中有很多这种情况,如果都再做一个窗体的话,数据库增大,况且维护也不方便.

TO: 14楼 15楼

如果那个添加窗体只用列表框打开的话,是没有问题的.问题是那个添加窗体不单是从那个列表框中打开,用户也有可能直接打开那个窗体输入数据.所以需要在列表框打开窗体的时候做判断.

[此贴子已经被作者于2006-6-5 8:41:54编辑过]

17#
 楼主| 发表于 2006-6-5 20:42:00 | 只看该作者
不得以,还是做个全局变量吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-20 15:17 , Processed in 0.074882 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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