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

Update valeur d'un champ de formulaire = Erreur 438

14 réponses
Avatar
Bear76
Bonjour à la communauté,

Dans l'évènement Current_Form j'ai inséré une ligne afin de pouvoir
mettre à jour la valeur d'un champ (numérique), mais à chaque fois que
j'ouvre mon form j'ai une "erreur d'exécution 438 (propriété ou
méthode non géré par cet objet)".

Champ1.Value = Champ de mon current_form que je souhaite mettre à jour
Champ2.value = Champ de mon current_form que j'utilise dans le calcul
Champ3.value = Champ du pied de mon sous-formulaire SF0

Tous mes champs sont au format numérique. Et le Champ3 calcule la somme
d'un champ numérique de mon SF0

Private_Sub Form_Current()
Champ1.Value = (Champ2.value + SF0.[Formulaire]![Champ3].value)
End Sub

Si quelqu'un(e) avait une idée.
Merci d'avance.

PS : Je suis sous Access 2007

4 réponses

1 2
Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir

Pour plus d'informations sur les événements formulaire voici un lien très
intéressant :
http://office.microsoft.com/fr-fr/access/HA102389881036.aspx


Cdt, Blaise
---- ---- ----
Avatar
Bear76
Bonjour Argy,

Vraiment étrange comme phénomène. Je vérifie toujours les valeurs
prises par les propriétés Champ père et Champ fils. Elles sont OK.
J'essaierai votre procédure. Pour l'heure mes 2 requêtes fonctionnent
bien.
Merci pour votre aide et votre patience.

Argyronet avait écrit le 08/10/2009 :
Humm, oui, mais si ça ne marche toujours pas, c'est que l'événement ne
correspond pas à ce que vous effectuez comme tâche...
De fait, l'événement Current() n'est jamais déclenché et il faut que vous
trouviez la parade, si je puis dire.
En d'autres termes, par exemple, forcer la MAJ du champ depuis le
sous-formulaire à l'aide de la propriété Parent.
Par exemple :
Private Sub QteCommandee_AfterUpdate()
Me.Parent.QTESTOCK.Value = Me.Parent.TOTALCMDE.Value +
Me.Parent.QTEINIT.Value
End Sub

En fait, ce phénomène de non MAJ comme vous le rencontrez est souvent du à
un problème de modélisation initiale et où, notamment, la relation Père-Fils
n'est pas correctement définie entre les fomulaires.
Access est conçu pour détecter et proposer directement l'affectation de
cette propriété à partir du moment où vos relations sont logiques et
correctement définies.
Dans ce cas, pas besoin de gymnastique bricolée comme celles que vous avez
paradée.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)


Avatar
Bear76
Dans son message précédent, Blaise Cacramp a écrit :
Selon : Bonjour ou bonsoir

Pour plus d'informations sur les événements formulaire voici un lien très
intéressant :
http://office.microsoft.com/fr-fr/access/HA102389881036.aspx


Cdt, Blaise
---- ---- ----



Bonjour,
Merci pour ce lien
@+
Avatar
Bear76
Bonsoir Argy, Bonsoir Blaise,
En vérifiant tous mes sous-formulaires, je me suis rendu compte que le
sous-formulaire pour lequel les :
Private Sub Current_Form()
Me![QTESTOCK] = Me.[TOTALCMDE].Value + Me![QTEINIT]
End sub
et
Private Sub QteCommandee_AfterUpdate()
Me.Parent.QTESTOCK.Value = Me.Parent.TOTALCMDE.Value +
Me.Parent.QTEINIT.Value
End Sub
ne fonctionnaient pas, contenait dans sa requête SQL (Source) la tbl
PRODUIT. Tbl qui n'avait rien à faire là. Je l'ai supprimé et depuis
tout fonctionne très bien.
Merci encore.

Argyronet avait prétendu :
Humm, oui, mais si ça ne marche toujours pas, c'est que l'événement ne
correspond pas à ce que vous effectuez comme tâche...
De fait, l'événement Current() n'est jamais déclenché et il faut que vous
trouviez la parade, si je puis dire.
En d'autres termes, par exemple, forcer la MAJ du champ depuis le
sous-formulaire à l'aide de la propriété Parent.
Par exemple :
Private Sub QteCommandee_AfterUpdate()
Me.Parent.QTESTOCK.Value = Me.Parent.TOTALCMDE.Value +
Me.Parent.QTEINIT.Value
End Sub

En fait, ce phénomène de non MAJ comme vous le rencontrez est souvent du à
un problème de modélisation initiale et où, notamment, la relation Père-Fils
n'est pas correctement définie entre les fomulaires.
Access est conçu pour détecter et proposer directement l'affectation de
cette propriété à partir du moment où vos relations sont logiques et
correctement définies.
Dans ce cas, pas besoin de gymnastique bricolée comme celles que vous avez
paradée.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)


1 2