访问VBA尝试从另一个表单引用文本框

我正在使用Access VBA,我正在尝试修改现有代码以添加弹出框。此弹出框是另一种形式,当用户单击此表单上的按钮时,我希望填充基本表单上的文本框。之后弹出窗口消失,然后我需要从基本表单上的文本框中访问该值。 顺序应该是这样的: 1)基本表单按钮单击调用模式弹出窗口 2)单击弹出窗口上的按钮将值保存到基本表单的文本框,然后返回控件。 3)基础形式然后使用此值来做某事。 我有一些代码,但它不能正常工作。任何人都可以看到这里遗失的东西,并帮助我纠正? 基本表格
Sub base()
    DoCmd.OpenForm "PaperType", , , , , acDialog

    MsgBox Me.TheAnswer           'This line gives a null error
End Sub
弹出窗体
Private Sub btnRolls_Click()
    'Me.Tag = 1
    Forms!ReceiptDetail_sfrm!TheAnswer = 1
    Me.Visible = False
End Sub

Private Sub btnSheets_Click()
    'Me.Tag = 4
    Forms!("ReceiptDetail_sfrm").TheAnswer = 4
    Me.Visible = False
End Sub
    
已邀请:
你可以这样做,你可能需要这样的东西:

Private Sub btnRolls_Click() Forms!ReceiptDetail_sfrm!TheAnswer = 1 Forms!ReceiptDetail_sfrm.Refresh Me.Visible = False End Sub

我做了很多次你正在做的事情。我现在不是为了一个例子来检查我的代码,但它是可行的。     
我倾向于隐藏弹出窗口,然后从中读取: 主要表格:
Private Sub base()
   DoCmd.OpenForm "PaperType", , , , , acDialog
   'code waits for modal hide here
   Me!TheAnswer = Forms("PaperType").SomethingOnThatFormThatStoresTheValue
   DoCmd.Close acForm, "PaperType", acSaveNo
   MsgBox Me.TheAnswer
End Sub
弹出
Private Sub btnRolls_Click
   'may be hidden control
   Me.SomethingOnThatFormThatStoresTheValue = TheValueToRead
   Me.Visible = False
End Sub
确保A)您的弹出窗口无法从表单本身关闭,或者B)您的调用代码将处理尝试读取不再加载(或两者)的内容的错误。     
显然,正确的答案是:“不要这样做!”。我没有尝试在表单之间传递数据,而是在Access中创建了一个表,其中1个记录中只有1个字段。然后我使用DoCmd.RunSQL将值存储在那里,并使用DLOOKUP()从其他表单中检索它。     

要回复问题请先登录注册