Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 从不同模块引用子窗体中的控件_Ms Access_Vba_Subform - Fatal编程技术网

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
部分。