Office中国论坛/Access中国论坛

标题: 这样的窗体传递为什么不支持弹出窗体模式 [打印本页]

作者: andymark    时间: 2006-7-18 07:19
标题: 这样的窗体传递为什么不支持弹出窗体模式
      在应用中需要把一个窗体的数据(Frm_GroupUser)传递给另一个(Frm_NewUser),然后根据参数再进行查询

把结果在窗体(Frm_NewUser)显示出来。现在的问题是:把Frm_NewUser窗体设为弹出模式则不能查询反映正常结

果,取消弹出模式则可以,为什么会这样。。。?     

没有设置弹出模式,结果为:

[attach]19093[/attach]

设置弹出模式,结果为:

[attach]19094[/attach]

[attach]19095[/attach]

作者: sgrshh29    时间: 2006-7-18 14:45
Activate,激活

当窗体或报表窗口接收焦点并成为活动窗口时,运行该窗体或报表中的指定宏或用户定义的事件过程。该事件不能在弹出窗体中发生。当普通的窗体或报表窗口从一个弹出窗体那里重新获得焦点时,也不会发生这个事件,除非焦点移至另一个窗体或报表

此时可用GotFocus替代这个事件.

[此贴子已经被作者于2006-7-18 6:51:30编辑过]


作者: andymark    时间: 2006-7-18 18:57
     改成GotFocus事件也不行,显示的结果不对,除了在Frm_GroupUser把结果直接传递给Frm_NewUser之外,还有什么方法既可以传递显示正常结果又能支持弹出式窗体?
作者: sgrshh29    时间: 2006-7-18 19:52
那就改在Open事件中试试.好像有的版本支持GotFocus,有的支持Open.具体原因搞不明.[attach]19100[/attach]


[此贴子已经被作者于2006-7-18 11:56:49编辑过]


作者: andymark    时间: 2006-7-18 20:20
可以了,但之前同样的代码 也在OPEN事件测试过也不行,奇怪[em06][em06]
作者: sgrshh29    时间: 2006-7-18 20:48
[em06][em06][em06]搞不明啊.我在家里的电脑open和gotfocus都可以,在公司就只有open通过,很奇怪.问题不能算真正解决.
作者: andymark    时间: 2006-7-18 21:04
最怕是个Bug,一时可以,一时又不可以,那就惨啦
作者: fan0217    时间: 2006-7-19 17:53
用全局变量来传递数据,在双击ListView是将值赋给变量,然后在Frm_NewUser窗体的打开或加载事件中将值赋给控件。打开窗体时可使用:DoCmd.OpenForm "Frm_NewUser", , , , , acDialog,这样可以顺利的从frm_NewUser窗体中返回控件中的值。
作者: fan0217    时间: 2006-7-19 17:56
全局变量配合acDialog参数使用会有很多用途的,从而达到简化程序设计的目的。

使用自定义对话框,通常采用的就是这种方法。

[此贴子已经被作者于2006-7-19 10:12:20编辑过]


作者: andymark    时间: 2006-7-19 23:22
在实际在我要传递下面的参数给Frm_NewUser,然后根据Tag的情况,处理不同的事情

Forms!Frm_NewUser.Tag = "UE"
Forms!Frm_NewUser.TxtUserCode = Mid(ListView1.SelectedItem.Key, 2, Len(ListView1.SelectedItem.Key))
Forms!Frm_NewUser.TxtUserName = Trim(ListView1.SelectedItem.Text)


实际上这个tag并没有真正传递过来 ,用fan0217的方法可以实现我想要的结果,

就是多了几个公共变量(一开始我是不想用这种方法,太多这种情况,就要太多的公共变量),

现只能用这种方法了






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3