表格到模块还是模块到表格?
从窗体调用模块还是从模块调用窗体更好 ;我总是需要创建一个sub,它只需调用一个表单,收集我的数据,然后将其发送到另一个模块进行处理 ;昨天我在想,为什么我需要2个sub,为什么不让1个调用表单,然后处理表单上的数据长话短说,我如何捕捉表单上的“取消”按钮以退出调用sub ;按钮已卸载我,但这只是转储表单内容,但没有#039;t退出呼叫子系统;我曾想过检查表单上数据框的值,但如果用户填写了所有;框,然后单击取消 ;这些盒子会有数据,所以它会尝试并继续 ;我想我可以用“取消”按钮清除一个数据框,然后检查它是否为零并以这种方式转储 ;有什么建议吗?
卸载我之后添加END怎么样 ;还是干脆结束 ;或者退出SUB? 结束后卸载我做了这件事 ;我知道这必须很简单 ;谢谢Matt 你';欢迎再次光临  ;:kewl: 但我们仍然没有#039;t回答最初的问题,是调用表单并传递给模块更好,还是让模块调用表单并接收结果更好 我通常使用模块驱动表单,原因之一是与您遇到的情况类似。(基本上,您希望从表单调用返回一个值或状态)我使用一个全局变量,存储在代码模块中。无论该全局变量存储在表单上完成的计算结果,还是仅将gIntCancel的值设置为1,都可以在卸载表单代码之前从表单代码中设置全局变量的值
然后,代码在调用代码模块中继续执行,这取决于全局变量现在设置为什么----------------------------------
&039;在代码模块中,全局retCode为整数
 ;retCode=0 ;FRM计算。显示 ;如果retCode=1,则   ;FRM连续LC。显示 ;其他   ;退出sub ;如果结束,则结束 我发现最好从模块中调用表单。在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卸载它们。 谢谢
页:
[1]