Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Référence à un Controle d'un sous-formulaire d'un formulaire

2 réponses
Avatar
HervéR
Bonjour,

L'objet peut paraître barbare, mais il est en fait assez simple !
Je veux dans un sub faire quelque chose en fonction d'une valeur présente
- dans le controle "Num_Client", présent
- dans le sous-formulaire "Sfrm_Entete_Client_Fran_Machine", présent
- dans le formulaire "Ligne_Contrat_Consultation"

Voici un exemple de ce que je veux faire dans le code :
Private Sub Btn_Contact_Click()
Dim The_frm As String, The_sfrm As String, The_ctrl As String
The_frm = "Ligne_Contrat_Consultation"
The_sfrm = "Sfrm_Entete_Client_Fran_Machine"
The_ctrl = "Num_Client"

' La ligne suivante marche bien
MsgBox Forms(The_frm).Sfrm_Entete_Client_Fran_Machine(The_ctrl)

' Mais je voudrais n'utiliser aucune valeur "en dur", du genre
MsgBox Forms(The_frm)(The_sfrm)(The_ctrl)
End Sub

mais je n'y arrive pas ! J'ai essayé plusieurs possiblités, en vain :(
Quelqu'un peut-l m'aider ?
Merci d'avance...

2 réponses

Avatar
Eric
"HervéR" écrivait news:#eAfglZOEHA.808
@tk2msftngp13.phx.gbl:

Bonjour,

L'objet peut paraître barbare, mais il est en fait assez simple !
Je veux dans un sub faire quelque chose en fonction d'une valeur
présente

- dans le controle "Num_Client", présent
- dans le sous-formulaire "Sfrm_Entete_Client_Fran_Machine", présent
- dans le formulaire "Ligne_Contrat_Consultation"

Voici un exemple de ce que je veux faire dans le code :
Private Sub Btn_Contact_Click()
Dim The_frm As String, The_sfrm As String, The_ctrl As String
The_frm = "Ligne_Contrat_Consultation"
The_sfrm = "Sfrm_Entete_Client_Fran_Machine"
The_ctrl = "Num_Client"

' La ligne suivante marche bien
MsgBox Forms(The_frm).Sfrm_Entete_Client_Fran_Machine(The_ctrl)

' Mais je voudrais n'utiliser aucune valeur "en dur", du genre
MsgBox Forms(The_frm)(The_sfrm)(The_ctrl)
End Sub

mais je n'y arrive pas ! J'ai essayé plusieurs possiblités, en vain :(
Quelqu'un peut-l m'aider ?
Merci d'avance...




Bonjour HervéR

Je viens d'essayer avec ta formule : MsgBox Forms(The_frm)(The_sfrm)
(The_ctrl) et ca marche
Private Sub Commande12_Click()
Dim the_form As String, the_sform As String, the_ctl As String
the_form = "Formulaire32" ' form principal
the_sform = "ListeClient" ' sous-formulaire
the_ctl = "Societe_client" ' controle du sous-form
MsgBox Forms(the_form)(the_sform)(the_ctl) ----> retourne bien le
nom de la sté, idem si je prends le numclient
End Sub

Y a peut-être quelque chose qui m'échappe. Le bouton est sur le
formulaire ppal.

A+
Eric

Avatar
HervéR
Merci Eric d'avoir essayé !
J'ai renommé le sous-formulaire en lui donnant un nom plus court
("Sfrm-Entete") : le code a fonctionné !
J'ai renommé le sous-formulaire en lui re-donnant son nom présumé trop long
("Sfrm-Entete_Client-Fran_Machine") : le code a fonctionné !

Donc merci à toi d'avoir essayé un code qui à mon avis devait fonctionner
mais qui ne fonctionnait pas et qui pourtant a fonctionné chez toi,
m'enjoignant à le re-tester pour constater qu'il fonctionnait, même après
avoir annulé la modification qui faisait qu'il avait fonctionné pour revenir
à la situation où il ne fonctionnait pas :) :) :)


"Eric" a écrit dans le message de
news:
"HervéR" écrivait news:#eAfglZOEHA.808
@tk2msftngp13.phx.gbl:

Bonjour,

L'objet peut paraître barbare, mais il est en fait assez simple !
Je veux dans un sub faire quelque chose en fonction d'une valeur
présente

- dans le controle "Num_Client", présent
- dans le sous-formulaire "Sfrm_Entete_Client_Fran_Machine", présent
- dans le formulaire "Ligne_Contrat_Consultation"

Voici un exemple de ce que je veux faire dans le code :
Private Sub Btn_Contact_Click()
Dim The_frm As String, The_sfrm As String, The_ctrl As String
The_frm = "Ligne_Contrat_Consultation"
The_sfrm = "Sfrm_Entete_Client_Fran_Machine"
The_ctrl = "Num_Client"

' La ligne suivante marche bien
MsgBox Forms(The_frm).Sfrm_Entete_Client_Fran_Machine(The_ctrl)

' Mais je voudrais n'utiliser aucune valeur "en dur", du genre
MsgBox Forms(The_frm)(The_sfrm)(The_ctrl)
End Sub

mais je n'y arrive pas ! J'ai essayé plusieurs possiblités, en vain :(
Quelqu'un peut-l m'aider ?
Merci d'avance...




Bonjour HervéR

Je viens d'essayer avec ta formule : MsgBox Forms(The_frm)(The_sfrm)
(The_ctrl) et ca marche
Private Sub Commande12_Click()
Dim the_form As String, the_sform As String, the_ctl As String
the_form = "Formulaire32" ' form principal
the_sform = "ListeClient" ' sous-formulaire
the_ctl = "Societe_client" ' controle du sous-form
MsgBox Forms(the_form)(the_sform)(the_ctl) ----> retourne bien le
nom de la sté, idem si je prends le numclient
End Sub

Y a peut-être quelque chose qui m'échappe. Le bouton est sur le
formulaire ppal.

A+
Eric