Ms access 从不同模块引用子窗体中的控件
我一直在试图理解如何从不同的模块引用子窗体控件。许多论坛都指向以下链接: 我还没有成功地将它添加到我的代码中。我不确定我失踪了 从第一个表单开始,当用户单击命令按钮时,将运行以下代码:Ms access 从不同模块引用子窗体中的控件,ms-access,vba,subform,Ms Access,Vba,Subform,我一直在试图理解如何从不同的模块引用子窗体控件。许多论坛都指向以下链接: 我还没有成功地将它添加到我的代码中。我不确定我失踪了 从第一个表单开始,当用户单击命令按钮时,将运行以下代码: Private Sub Command3_Click() policyid = Me.PolicyList Call openpolicy(policyid) End Sub 从模块1: Public Sub openpolicy(policyid) DoCmd.Open
Private Sub Command3_Click()
policyid = Me.PolicyList
Call openpolicy(policyid)
End Sub
从模块1:
Public Sub openpolicy(policyid)
DoCmd.OpenForm ("frmPolicyDetails")
Dim dbs As DAO.Database
Dim rcd As DAO.Recordset
Set dbs = CurrentDb
Set rcd = dbs.OpenRecordset("Select * from Policy Inner join client on client.clientid = policy.clientid where Policy.id = " & policyid)
Forms!Frmpolicydetails.selectedpolicy = rcd("PolicyNumber")
Forms!Frmpolicydetails.selectedName = rcd("FirstName") & " " & rcd("LastName")
'Trying to update subform textbox
Forms!frmpolicydetails!frmpolicyInfo.policynumber = rcd("PolicyNumber")
End Sub
“FrmPolicyInfo”是导航表单指向的“目标名称”,并且
“PolicyNumber”是子窗体上控件的名称
有什么想法吗?我会给你一个小提示,帮助我解决这个问题。您需要先引用子表单控件(包含子表单的框),然后再引用其中包含的表单,最后再引用该控件
Forms!MainFormName!SubformControlName.Form!txtControlName
因此,在您的情况下,它可能如下所示:
Forms!frmpolicydetails!SubformControl1.Form!policynumber = rcd("PolicyNumber")
令人困惑的是,您不想将“.Form!”更改为您的表单名称。当您引用子窗体控件的窗体对象时,总是将其称为窗体,而不是窗体的名称。请帮助我们理解“未成功”的含义。是否有错误消息?如果是,请告诉我们该消息的全文,并指出哪一行触发该消息。如果没有错误,请描述代码如何无法完成您想要的操作。您不需要
Form
在那里:Forms!MainFormName!子窗体控件名!txtControlName
谢谢你的提示。我不知道您可以删除.Form
部分。