Vba 无法在Access 2013中的两个弹出窗体之间传递值

Vba 无法在Access 2013中的两个弹出窗体之间传递值,vba,ms-access,Vba,Ms Access,我在access 2013中有一个列表框,双击(form1)中的Lisbox后,我需要将值从(form1)传递到(form2)。我已经尝试过这种方法: 激活(form2)时,下面的代码正常工作,但如果 属性popup=true 它不工作,无法读入值(form2) 注意:我是access数据库开发新手对话框弹出窗体将停止调用窗体上的所有代码,直到关闭打开的第二个窗体 将Openargs属性中的值传递给弹出窗口 您可以使用模块中定义的TempVars或Pubic变量来存储值,然后以其他形式访问它们

我在access 2013中有一个列表框,双击(form1)中的Lisbox后,我需要将值从(form1)传递到(form2)。我已经尝试过这种方法: 激活(form2)时,下面的代码正常工作,但如果 属性popup=true

它不工作,无法读入值(form2


注意:我是access数据库开发新手

对话框弹出窗体将停止调用窗体上的所有代码,直到关闭打开的第二个窗体

将Openargs属性中的值传递给弹出窗口

  • 您可以使用模块中定义的TempVars或Pubic变量来存储值,然后以其他形式访问它们

  • 最好的选择是使用Minty已经提到的OpenArgs选项

  • 表格1

    Private Sub listBox_DblClick(Cancel As Integer)
        Dim lstStr As String
        lstStr = Me.listBox.Column(1)
        DoCmd.OpenForm "SearchFrm", acNormal, , , , acDialog, lstStr 
    End Sub
    
    表格2

    Private Sub Form_Load()
        If Not IsNull(Me.OpenArgs) Then
            MsgBox Me.OpenArgs
        End If
    End Sub
    

    谢谢Minty,但我需要同时打开两个表单,然后将代码移动到您正在调用的表单。正如我所说的,你不能将焦点从弹出窗体上移开,所以你必须从那里开始工作。感谢你的反馈,但实际上当窗体弹出属性=false时它工作,但当设置为true时,Form2不会读取传递的值,我假设因为它已经打开,所以没有调用form_Load()事件,在打开第二个表单之前,我需要tiger在表单2中从OpenArgs获取值,添加以下代码
    Docmd.Close acForm,Me.Name
    以关闭表单。但我不需要关闭it@MohamedAbdelrahman我通过设置popup=true和popup=false来测试代码,它可以工作
    Private Sub Form_Load()
        If Not IsNull(Me.OpenArgs) Then
            MsgBox Me.OpenArgs
        End If
    End Sub