在当前运行脚本

时间:2015-01-05 22:38:11

标签: vba access-vba ms-access-2010

我确信这很简单,但我不能让它发挥作用。我有一个包含三个子表单的表单。主窗体加载并找到所请求的记录正常,如果我从主窗体上的按钮运行下面它工作正常。我想要做的是让它在表单加载请求记录之后运行并且没有用户交互。我已尝试加载和当前,但由于窗体尚未在屏幕上,没有值填充变量,msgboxes为空。但就像我说从主按钮上发射它可以正常工作。

任何帮助将不胜感激。

actCount = [ActMovDelete].Form![Text93].Value
PlaCount = [PalnMovDelete].Form![Text91].Value
noCount = [NotesDelete].Form![Text50].Value

MsgBox actCount
MsgBox PlaCount
MsgBox noCount

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的问题,但如果您是在尝试初始化时激活代码,那么只需

Private Sub UserForm_Initialize()

    [your code here...]

End Sub

但是,如果您正在尝试填充未加载的表单的变量,那么更好的方法可能是将变量存储为表单中的公共变量。即使没有加载变量,这也可以让您访问变量。正如这可能有用的一个例子:

在您想要获取变量的表单中(名为UserForm1):

Public strFromTheForm As String


Private Sub UserForm_Activate()

    TextBox1.Value = strFromTheForm

End Sub

从其他表单或模块中,您可以包含代码:

Public Sub Test2()

    Dim strTest As String
    strTest = UserForm1.strFromTheForm

    If strTest = "" Then

        UserForm1.strFromTheForm = "Test"

    End If

    UserForm1.Show

End Sub