0

我一直在尝试了解如何从不同的模块引用子表单控件。许多论坛都指向以下链接: http ://access.mvps.org/access/forms/frm0031.htm

我还没有成功地将它添加到我的代码中。不确定我是否失踪了。

从第一个表单开始,当用户单击命令按钮时,将运行以下代码:

  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”是子表单上的控件名称

有任何想法吗?

4

1 回答 1

1

我会给你一个帮助我解决这个问题的小技巧。您需要引用 SubformControl(包含子表单的框),然后是其中包含的表单,最后是控件。

Forms!MainFormName!SubformControlName.Form!txtControlName

因此,在您的情况下,它可能如下所示:

Forms!frmpolicydetails!SubformControl1.Form!policynumber = rcd("PolicyNumber")

这里令人困惑的部分是您不想更改“.Form!”。成为您的表单名称。当您引用子窗体控件的窗体对象时,您总是将其称为窗体,而不是窗体的名称。

于 2013-10-08T20:59:34.443 回答