Problème pour affecter une valeur saisie dans un sous-formulaire
1 réponse
papou
Bonjour
J'ai un formulaire composé de plusieurs sous-formulaires.
Dans un de mes sous formulaires, je souhaite par l'évènement après MAJ sur
un de mes champs, affecter la valeur présente à un champ situé dans un autre
sous-formulaire avec une condition : un contrôle onglet de mon multipage
doit être visible.
Voici la syntaxe que j'essaie (trouvée dans l'aide) et qui ne fonctionne pas
(erreur 2465)
(Formualire1Infosgénérales est mon formulaire principal)
Private Sub renouvellement_demande_AfterUpdate()
If Me.Parent.Form.Controls("Pagehotline").Visible = True Then
Forms!Formulaire1Infosgénérales.Formulaire6HotLine.Form!Controls.renouvellem
ent_demande.Value = renouvellement_demande.Value
End If
'Forms!Commandes.ctlSousForm.Form!Controls.NouvDonnées
End Sub
Si quelqu'un a une idée, je le remercie par avance.
Cordialement
Pascal
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Yannick Croteau
salut papou!
T'es sur la bonne voie, mais pour commencer, je te conseil peut-être d'allégé un peu ton code. Beaucoup d'éléments sont implicites au code, donc pourquoi pas l'éliminer. D'un autre côté ce code que je vais te donner n'est pas garanti, puisque je ne l'ai pas personnellement essayé, mais ça devrais ressemblé à ça...
Private Sub renouvellement_demande_AfterUpdate()
If [Form_Formualire1Infosgénérales].ControlOnglet.Value = 0 then 'La value du contrôl d'onglet est la page active page 1 = value 0 , page 2 = value 1 etc. [Form_Hotline].renouvellement_demande = Me.renouvellement_demande ' Tu utilises le [Form_Hotline]![renouvellement demande] pour affecter l'enregistrement actif C'est le ![renouvellement demande] qui est important non pas .renouvellement_demande End if
'Si tu veux affecter un jeux d'enregsitrements, alors tu prends, soit un requête MAJ ou un Recordset sous forme...
Dim RS as DAO.recordset
Set RS = [Form_Hotline].recordset ' ou .recordsetclone que je préfère personnellement pour une raison de flexibilité et pour éviter certains conflits
If RS.recordcount > 0 then RS.movefirst Do RS.edit RS.fields("renouvellement demande") = me![renouvellement demande] RS.update RS.movenext loop until RS.EOF End if '--------------------------------------------------------------------------- ------- 'dans le cas d'un ajout...
RS.close ' à faire seulement si tu prends le .recordsetclone .... tu ne fais pas dans un cas .recordset Set RS = nothing
[Form_Hotline].requery [Form_Hotline].repaint ' optionel dans plusieurs cas...
End sub
' oublies toute l'histoire de parent et de [Form_gfdgdf].[sous_forjjtyjtyj] .... ben trop pesant pour rien... ' donne juste l'information nécessaire pour que Access se retrouve, ça va être suffisant...
En espérant que ça t'aide
Yannick www.frogtuning.com ASP, SQLServer et Access
"papou" <nspm> a écrit dans le message de news:Ogi%
Bonjour J'ai un formulaire composé de plusieurs sous-formulaires. Dans un de mes sous formulaires, je souhaite par l'évènement après MAJ sur un de mes champs, affecter la valeur présente à un champ situé dans un autre
sous-formulaire avec une condition : un contrôle onglet de mon multipage doit être visible. Voici la syntaxe que j'essaie (trouvée dans l'aide) et qui ne fonctionne pas
(erreur 2465) (Formualire1Infosgénérales est mon formulaire principal) Private Sub renouvellement_demande_AfterUpdate() If Me.Parent.Form.Controls("Pagehotline").Visible = True Then
ent_demande.Value = renouvellement_demande.Value End If 'Forms!Commandes.ctlSousForm.Form!Controls.NouvDonnées End Sub
Si quelqu'un a une idée, je le remercie par avance. Cordialement Pascal
salut papou!
T'es sur la bonne voie, mais pour commencer, je te conseil peut-être
d'allégé un peu ton code.
Beaucoup d'éléments sont implicites au code, donc pourquoi pas l'éliminer.
D'un autre côté ce code que je vais te donner n'est pas garanti, puisque je
ne l'ai pas personnellement essayé, mais ça devrais ressemblé à ça...
Private Sub renouvellement_demande_AfterUpdate()
If [Form_Formualire1Infosgénérales].ControlOnglet.Value = 0 then 'La value
du contrôl d'onglet est la page active page 1 = value 0 , page 2 = value 1
etc.
[Form_Hotline].renouvellement_demande = Me.renouvellement_demande ' Tu
utilises le [Form_Hotline]![renouvellement demande] pour affecter
l'enregistrement actif C'est le ![renouvellement demande] qui est important
non pas .renouvellement_demande
End if
'Si tu veux affecter un jeux d'enregsitrements, alors tu prends, soit un
requête MAJ ou un Recordset sous forme...
Dim RS as DAO.recordset
Set RS = [Form_Hotline].recordset
' ou .recordsetclone que je préfère personnellement pour une raison de
flexibilité et pour éviter certains conflits
If RS.recordcount > 0 then
RS.movefirst
Do
RS.edit
RS.fields("renouvellement demande") = me![renouvellement demande]
RS.update
RS.movenext
loop until RS.EOF
End if
'---------------------------------------------------------------------------
-------
'dans le cas d'un ajout...
RS.close ' à faire seulement si tu prends le .recordsetclone .... tu ne fais
pas dans un cas .recordset
Set RS = nothing
[Form_Hotline].requery
[Form_Hotline].repaint ' optionel dans plusieurs cas...
End sub
' oublies toute l'histoire de parent et de [Form_gfdgdf].[sous_forjjtyjtyj]
.... ben trop pesant pour rien...
' donne juste l'information nécessaire pour que Access se retrouve, ça va
être suffisant...
En espérant que ça t'aide
Yannick
www.frogtuning.com
ASP, SQLServer et Access
"papou" <nspm> a écrit dans le message de
news:Ogi%23V6RpDHA.2444@TK2MSFTNGP09.phx.gbl...
Bonjour
J'ai un formulaire composé de plusieurs sous-formulaires.
Dans un de mes sous formulaires, je souhaite par l'évènement après MAJ sur
un de mes champs, affecter la valeur présente à un champ situé dans un
autre
sous-formulaire avec une condition : un contrôle onglet de mon multipage
doit être visible.
Voici la syntaxe que j'essaie (trouvée dans l'aide) et qui ne fonctionne
pas
(erreur 2465)
(Formualire1Infosgénérales est mon formulaire principal)
Private Sub renouvellement_demande_AfterUpdate()
If Me.Parent.Form.Controls("Pagehotline").Visible = True Then
T'es sur la bonne voie, mais pour commencer, je te conseil peut-être d'allégé un peu ton code. Beaucoup d'éléments sont implicites au code, donc pourquoi pas l'éliminer. D'un autre côté ce code que je vais te donner n'est pas garanti, puisque je ne l'ai pas personnellement essayé, mais ça devrais ressemblé à ça...
Private Sub renouvellement_demande_AfterUpdate()
If [Form_Formualire1Infosgénérales].ControlOnglet.Value = 0 then 'La value du contrôl d'onglet est la page active page 1 = value 0 , page 2 = value 1 etc. [Form_Hotline].renouvellement_demande = Me.renouvellement_demande ' Tu utilises le [Form_Hotline]![renouvellement demande] pour affecter l'enregistrement actif C'est le ![renouvellement demande] qui est important non pas .renouvellement_demande End if
'Si tu veux affecter un jeux d'enregsitrements, alors tu prends, soit un requête MAJ ou un Recordset sous forme...
Dim RS as DAO.recordset
Set RS = [Form_Hotline].recordset ' ou .recordsetclone que je préfère personnellement pour une raison de flexibilité et pour éviter certains conflits
If RS.recordcount > 0 then RS.movefirst Do RS.edit RS.fields("renouvellement demande") = me![renouvellement demande] RS.update RS.movenext loop until RS.EOF End if '--------------------------------------------------------------------------- ------- 'dans le cas d'un ajout...
RS.close ' à faire seulement si tu prends le .recordsetclone .... tu ne fais pas dans un cas .recordset Set RS = nothing
[Form_Hotline].requery [Form_Hotline].repaint ' optionel dans plusieurs cas...
End sub
' oublies toute l'histoire de parent et de [Form_gfdgdf].[sous_forjjtyjtyj] .... ben trop pesant pour rien... ' donne juste l'information nécessaire pour que Access se retrouve, ça va être suffisant...
En espérant que ça t'aide
Yannick www.frogtuning.com ASP, SQLServer et Access
"papou" <nspm> a écrit dans le message de news:Ogi%
Bonjour J'ai un formulaire composé de plusieurs sous-formulaires. Dans un de mes sous formulaires, je souhaite par l'évènement après MAJ sur un de mes champs, affecter la valeur présente à un champ situé dans un autre
sous-formulaire avec une condition : un contrôle onglet de mon multipage doit être visible. Voici la syntaxe que j'essaie (trouvée dans l'aide) et qui ne fonctionne pas
(erreur 2465) (Formualire1Infosgénérales est mon formulaire principal) Private Sub renouvellement_demande_AfterUpdate() If Me.Parent.Form.Controls("Pagehotline").Visible = True Then