2013-10-08 2 views
0

J'ai essayé de comprendre comment référencer un contrôle de sous-formulaire à partir d'un module différent. De nombreux forums ont pointé vers le lien suivant: http://access.mvps.org/access/forms/frm0031.htmRéférencement des contrôles dans les sous-formulaires d'un module différent

Je n'ai pas réussi à ajouter cela à mon code pour le moment. Pas sûr que je suis manquant.

De la première forme, lorsque l'utilisateur clique sur le bouton de commande le code suivant fonctionne:

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

De 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" est le "nom cible" la forme de navigation pointez sur et "PolicyNumber" est le nom du contrôle sur le sous-formulaire

Des idées?

+1

S'il vous plaît, aidez-nous à comprendre ce que signifie * "pas eu de succès" *. Y a-t-il un message d'erreur? Si oui, veuillez nous indiquer le texte intégral de ce message et indiquer quelle ligne le déclenche. Si aucune erreur, s'il vous plaît décrire comment le code ne parvient pas à faire ce que vous voulez faire. – HansUp

Répondre

1

Je vais vous donner un petit conseil qui m'a aidé avec ce problème. Vous devez vous référer à SubformControl (la boîte qui contient le sous-formulaire), puis au formulaire qu'il contient, et enfin au contrôle.

Forms!MainFormName!SubformControlName.Form!txtControlName 

Donc, dans votre cas, il pourrait ressembler à ceci:

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

La partie est source de confusion ici que vous ne voulez pas changer « .Form! » être le nom de votre formulaire Lorsque vous faites référence à l'objet de formulaire d'un contrôle de sous-formulaire, vous l'appelez toujours Formulaire, pas le nom du formulaire.

+0

Vous ne devriez pas avoir besoin de 'Form':' Forms! MainFormName! SubformControlName! TxtControlName' – HansUp

+0

Merci pour cette astuce. Je n'étais pas au courant que vous pouvez supprimer la partie '.Form'. – HK1

Questions connexes