0

別のモジュールからサブフォーム コントロールを参照する方法を理解しようとしています。多くのフォーラムが次のリンクを指摘しています: 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」はサブフォーム上のコントロールの名前です。

何か案は?

4

1 に答える 1

1

この問題を解決するのに役立つ小さなヒントを 1 つ紹介します。SubformControl (サブフォームを含むボックス) を参照し、次にその中に含まれるフォームを参照し、最後にコントロールを参照する必要があります。

Forms!MainFormName!SubformControlName.Form!txtControlName

したがって、あなたの場合は次のようになります。

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

ここで紛らわしいのは、「.Form!」を変更したくないということです。をフォーム名にします。サブフォーム コントロールのフォーム オブジェクトを参照するときは、フォームの名前ではなく、常にフォームとして参照します。

于 2013-10-08T20:59:34.443 に答える