MS Access:为Form分配变量

时间:2015-01-24 18:49:05

标签: vba ms-access global-variables

我正在尝试设置一个全局变量(作为表单)并设置它= Form_MyForm

我已经使用Form Load事件来进行赋值,因为它是一个全局变量,我希望我的所有过程都可以使用我的这个变量而不需要在不同的过程中重新分配赋值

问题是,有时它会起作用,而在其他时候它无法识别我的变量,此时我必须关闭我的表单并重新打开它以刷新作业

我查看了许多访问表单的事件,但不确定它们是什么以及它们如何对我的情况有所帮助

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

  1. 在Access 模块中定义您的全局变量(不在任何表单后面)。这允许任何对象(表单,报表,宏等)访问它们。
  2. 初始化模块中Public Function或Public Sub内的变量,并使用数据库的开放形式(即主菜单或交换机)调用函数/ sub。
  3. 现在,变量可用于表达式,查询,VBA和其他区域。 **如果需要通过各种参数重新定义全局变量,请在函数/ sub中进行设置,然后从特定的触发事件中重新调用它。

答案 1 :(得分:0)

与用户定义的全局变量存在同样的问题,每当抛出错误或切换到开发环境时,都会丢失变量中的设定值。
您可以尝试使用TempVar集合中的会话变量,我发现它更加稳定。它会保持设置,直到您关闭数据库或取消设置它。

MyFormName = me.Form.Name
'Load the data into Session variables
TempVars.Add "SessMyFormName", MyFormName
'Use the value elsewhere
SelectedForm = TempVars![SessMyFormName]
'Remove All Session Variables Set Earlier
TempVars.RemoveAll 'Destroy Session