【发布时间】:2015-02-07 10:50:38
【问题描述】:
好的,我已经有几个版本没有使用 Access 编程了,但我可以发誓我曾经能够将控件指向表单全局变量。示例代码如下:
Option Compare Database
Option Explicit
Dim Testvar As String
Private Sub Form_Load()
Testvar = "Load"
End Sub
Private Sub Form_Open(Cancel As Integer)
Testvar = "open"
End Sub
Private Sub Text0_Click()
Testvar = "settest"
End Sub
我应该能够在控件上放置一个可以看到 TestVar 变量的文本框,但是控件不这样做。另外,我以前可以使用表单的记录源来做到这一点。
所以,问题 - 我疯了吗——这不可能吗? 还是我忘记了如何填写表格?
然后是最重要的问题 - 解决此问题的最佳方法是什么?
最常用的方法是传入 OpenArgs(在这种情况下为记录键),然后将其解析为全局变量,然后几个控件显示打开的 args 和/或查找要从键显示的值。
我真的很讨厌必须构建例程来重建和加载控件的记录源。希望有人知道更好的方法
【问题讨论】:
-
您是否尝试将文本框绑定到模块级变量?
-
没错。我原以为控件至少能够“看到”变量。即使它可能不允许直接绑定。
-
@alanTuring 您必须在常规模块中而不是在表单模块中声明
global变量。将其声明为public myGlobal as String,然后它就可以在所有模块中访问。 -
@vbaforall - 我不想为表单特定值声明全局变量。在表单级别声明的 var 应该可用于表单上的所有对象。
标签: forms ms-access vba global-variables