参考访问

时间:2016-06-14 07:22:57

标签: excel vba access

我有以下表格,有三个子表格:

enter image description here

右上角的按钮在Excel中打开用户窗体。我希望userform已经拥有这些子表单中的一些选定的值。但是,我无法在我的VBA代码中引用子表单中的记录。我已成功地从主窗体传输值,例如名称等,但不是子窗体中的值。访问代码:

Option Compare Database

Private Sub Toggle159_Click()
    Dim abc As String
    abc = Me.CompanyName

    Dim xlApp As Object 'Excel.Application, xlWB As Excel.Workbook
    Dim xlWB As Object
    Set xlApp = CreateObject("Excel.Application")
    Set xlWB = xlApp.Workbooks.Open("C:\NA\eb\quotegenv2.xlsm") ' specify file
    xlApp.Visible = True
    xlApp.Run "Module3.showFormWithValues", abc


End Sub

在上面的代码中,CompanyName是mainform的控件。此代码运行正常,但我尝试使用'me.subformname.form.controlname'引用子窗体中的项目,但控件名称未出现在建议中。

模块的excel代码:

' placed in code Module3
    Sub showFormWithValues(txt1 As String)
        With UserForm1

            .ClientName.Text = txt1

        End With
    UserForm1.Show
    End Sub

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您已尝试在表单打开前设置ClientName

使用模块3顶部的全局变量在showFormWithValues和表单之间共享数据。

在第一个程序之前Module3的顶部作为公共变量,如下例所示: -

Option Explicit

Public StrCN    As String

Sub showFormWithValues(txt1 As String)
    ...
End Eub

UserForm1添加(或更新,如果已存在)以下内容: -

Private Sub UserForm_Activate()
Me.ClientName.Text = Module3.StrCN
End Sub