从不同模块引用子窗体中的控件

时间:2013-10-08 20:38:31

标签: ms-access access-vba subform

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

我还没有成功将其添加到我的代码中。不确定我是否遗失。

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

  Private Sub Command3_Click()
      policyid = Me.PolicyList
      Call openpolicy(policyid)
  End Sub

来自Module1:

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

Forms!MainFormName!SubformControlName.Form!txtControlName

所以在你的情况下,它可能看起来像这样:

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

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