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

Problème pour affecter une valeur saisie dans un sous-formulaire

1 réponse
Avatar
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

1 réponse

Avatar
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.addnew
RS.fields("renouvellement demande") = me![renouvellement demande]
RS.Update
'---------------------------------------------------------------------------
-------


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

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