Matt__W 发表于 2008-12-19 11:01:16

表格到模块还是模块到表格?

从窗体调用模块还是从模块调用窗体更好 我总是需要创建一个sub,它只需调用一个表单,收集我的数据,然后将其发送到另一个模块进行处理 昨天我在想,为什么我需要2个sub,为什么不让1个调用表单,然后处理表单上的数据
长话短说,我如何捕捉表单上的“取消”按钮以退出调用sub 按钮已卸载我,但这只是转储表单内容,但没有#039;t退出呼叫子系统;我曾想过检查表单上数据框的值,但如果用户填写了所有;框,然后单击取消 这些盒子会有数据,所以它会尝试并继续 我想我可以用“取消”按钮清除一个数据框,然后检查它是否为零并以这种方式转储 有什么建议吗?

Matt__W 发表于 2008-12-19 11:07:25

卸载我之后添加END怎么样 还是干脆结束 或者退出SUB?

Keith™ 发表于 2008-12-19 11:12:06

结束后卸载我做了这件事 我知道这必须很简单 谢谢Matt

Matt__W 发表于 2008-12-19 11:13:04

你'欢迎再次光临&nbsp :kewl:

Keith™ 发表于 2008-12-19 13:55:41

但我们仍然没有#039;t回答最初的问题,是调用表单并传递给模块更好,还是让模块调用表单并接收结果更好

Matt__W 发表于 2008-12-29 12:39:13

我通常使用模块驱动表单,原因之一是与您遇到的情况类似。(基本上,您希望从表单调用返回一个值或状态)我使用一个全局变量,存储在代码模块中。无论该全局变量存储在表单上完成的计算结果,还是仅将gIntCancel的值设置为1,都可以在卸载表单代码之前从表单代码中设置全局变量的值
然后,代码在调用代码模块中继续执行,这取决于全局变量现在设置为什么----------------------------------
&039;在代码模块中,全局retCode为整数
 retCode=0 FRM计算。显示 如果retCode=1,则&nbsp&nbsp FRM连续LC。显示 其他&nbsp&nbsp 退出sub 如果结束,则结束

Keith™ 发表于 2008-12-29 14:25:26

我发现最好从模块中调用表单。在VB中,从Sub main()调用主窗体,这就是我要开始的地方
既然我们已经在表单中解决了这个问题,您还应该使用QueryClose来防止用户使用控制框关闭表单时出现数据处理错误
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = 1
Hide Me
End Sub

窗口将隐藏,但可以从模块中访问表单和数据
当然,您可以始终从表单中设置数据,因此在表单隐藏后,您不再需要查询表单
记得在收集完所有数据后卸载表单。虽然VBA在这方面相当宽容,但VB并不是那么宽容。你可以很容易地在后台运行多个应用程序;t卸载它们。

Keith™ 发表于 2008-12-30 10:22:09

谢谢
页: [1]
查看完整版本: 表格到模块还是模块到表格?