OVH Cloud OVH Cloud

Valeur de controle qui est la recopie d'un autre a actualiser

6 réponses
Avatar
Robert
Bonjours a tous,

Contexte : Un sous formulaire qui contient un champ calculé (Somme)
Dans le formulaire un contrôle qui est un champ de table, doit prendre
la valeur du contrôle du SF.

Après plusieurs recherche, j'utilise du code pour faire cela mais la mise a
jour ne se fait pas bien.
L'évènement "sur activation" du SF me semblai le plus approprié mais a
l'ouverture cela pose problème (je suppose que a ce moment la , la valeur du
champ calculé ne contient pas de valeur)

voici le code que j'utilise pour écrire ma valeur dans le champ du F1.

"Forms![F_Principal].Form![montant_total] = Me.MontantTotal"
Comment exécuter cela a chaque changement dans SF1 ?

Merci d'avance pour votre réponse

Robert

6 réponses

Avatar
Raymond [mvp]
Bonjour.

voir les remarques sur la page:
http://officesystem.access.free.fr/vba/sf_sommes.htm
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Robert" a écrit dans le message de
news: 4251bf54$0$1232$
Bonjours a tous,

Contexte : Un sous formulaire qui contient un champ calculé (Somme)
Dans le formulaire un contrôle qui est un champ de table, doit prendre
la valeur du contrôle du SF.

Après plusieurs recherche, j'utilise du code pour faire cela mais la mise
a jour ne se fait pas bien.
L'évènement "sur activation" du SF me semblai le plus approprié mais a
l'ouverture cela pose problème (je suppose que a ce moment la , la valeur
du champ calculé ne contient pas de valeur)

voici le code que j'utilise pour écrire ma valeur dans le champ du F1.

"Forms![F_Principal].Form![montant_total] = Me.MontantTotal"
Comment exécuter cela a chaque changement dans SF1 ?

Merci d'avance pour votre réponse

Robert




Avatar
le meruvien
bonjour Robert,
dans ton formulaire, tu met un champ independant, et comme source, tu met :
formulaires![nomF principal]![nom du sf].formulaires![nom du champ dans le
sf]
et pour mettre ton champ a jour, a l'evenement apres maj du champ tu
l'envoie dans la procedure et tu met : tonchamp= ......(la même formulaire)

"Robert" a écrit dans le message de
news: 4251bf54$0$1232$
Bonjours a tous,

Contexte : Un sous formulaire qui contient un champ calculé (Somme)
Dans le formulaire un contrôle qui est un champ de table, doit prendre
la valeur du contrôle du SF.

Après plusieurs recherche, j'utilise du code pour faire cela mais la mise
a jour ne se fait pas bien.
L'évènement "sur activation" du SF me semblai le plus approprié mais a
l'ouverture cela pose problème (je suppose que a ce moment la , la valeur
du champ calculé ne contient pas de valeur)

voici le code que j'utilise pour écrire ma valeur dans le champ du F1.

"Forms![F_Principal].Form![montant_total] = Me.MontantTotal"
Comment exécuter cela a chaque changement dans SF1 ?

Merci d'avance pour votre réponse

Robert




Avatar
Robert
Je vous remercie pour votre aide, mais cela ne fonctionne pas.
Après de multiples essais, un seul semble fonctionner correctement, c'est
sur l'évènement "après MAJ" du sous formulaire sauf que la valeur prise en
compte dans le champ de table du formulaire principal est la valeur
précédente (avant modification)
ex : je modifie la valeur dans le sous formulaire 1000 -> 1500 le champ
calculé (somme) du pied de SF = 1500 par contre le champ du FP = 1000
Si je fais un nouveau changement 1500 -> 1300 le champ du FP = 1500...

je pense que je n'ai pas été clair dans mon explication :
La valeur que je veux modifier est un champ de table dans le formulaire
principal et non un contrôle calculé Indépendant.
car dans ce cas il n'y a pas de problème.

Robert


"Robert" a écrit dans le message de
news: 4251bf54$0$1232$
Bonjours a tous,

Contexte : Un sous formulaire qui contient un champ calculé (Somme)
Dans le formulaire un contrôle qui est un champ de table, doit prendre
la valeur du contrôle du SF.

Après plusieurs recherche, j'utilise du code pour faire cela mais la mise
a jour ne se fait pas bien.
L'évènement "sur activation" du SF me semblai le plus approprié mais a
l'ouverture cela pose problème (je suppose que a ce moment la , la valeur
du champ calculé ne contient pas de valeur)

voici le code que j'utilise pour écrire ma valeur dans le champ du F1.

"Forms![F_Principal].Form![montant_total] = Me.MontantTotal"
Comment exécuter cela a chaque changement dans SF1 ?

Merci d'avance pour votre réponse

Robert




Avatar
Raymond [mvp]
bonsoir.

sur le afterupdate du contrôle dans le sous-formulaire,tu mets:
DoCmd.RunCommand acCmdSaveRecord
et un requery sur le contrôle du formulaire principal.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Robert" a écrit dans le message de
news: 42531630$0$19325$
Je vous remercie pour votre aide, mais cela ne fonctionne pas.
Après de multiples essais, un seul semble fonctionner correctement, c'est
sur l'évènement "après MAJ" du sous formulaire sauf que la valeur prise en
compte dans le champ de table du formulaire principal est la valeur
précédente (avant modification)
ex : je modifie la valeur dans le sous formulaire 1000 -> 1500 le champ
calculé (somme) du pied de SF = 1500 par contre le champ du FP = 1000
Si je fais un nouveau changement 1500 -> 1300 le champ du FP = 1500...

je pense que je n'ai pas été clair dans mon explication :
La valeur que je veux modifier est un champ de table dans le formulaire
principal et non un contrôle calculé Indépendant.
car dans ce cas il n'y a pas de problème.

Robert


"Robert" a écrit dans le message de
news: 4251bf54$0$1232$
Bonjours a tous,

Contexte : Un sous formulaire qui contient un champ calculé (Somme)
Dans le formulaire un contrôle qui est un champ de table, doit prendre
la valeur du contrôle du SF.

Après plusieurs recherche, j'utilise du code pour faire cela mais la mise
a jour ne se fait pas bien.
L'évènement "sur activation" du SF me semblai le plus approprié mais a
l'ouverture cela pose problème (je suppose que a ce moment la , la valeur
du champ calculé ne contient pas de valeur)

voici le code que j'utilise pour écrire ma valeur dans le champ du F1.

"Forms![F_Principal].Form![montant_total] = Me.MontantTotal"
Comment exécuter cela a chaque changement dans SF1 ?

Merci d'avance pour votre réponse

Robert








Avatar
Robert
Cela ne fonctionne pas, en fait le problème est lié a la mise a jour des
contrôles calculés .
Les champs calculés sont mis à jour après l'exécution du code.
Il faudrait pouvoir redonner la main a Access pour qu'il puisse calculer les
champs et ensuite la reprendre (la main) pour mettre a jour le contrôle
ayant pour source un champ de table.

Comment faire..., car apparemment un contrôle calculé ne renvoie pas
d'évènement lorsque sa valeur change.
A part mettre un bouton qui déclenche l'opération (c'est embêtant), je ne
vois rien d'autre

Robert

"Raymond [mvp]" a écrit dans le message de
news: %
bonsoir.

sur le afterupdate du contrôle dans le sous-formulaire,tu mets:
DoCmd.RunCommand acCmdSaveRecord
et un requery sur le contrôle du formulaire principal.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Robert" a écrit dans le message de
news: 42531630$0$19325$
Je vous remercie pour votre aide, mais cela ne fonctionne pas.
Après de multiples essais, un seul semble fonctionner correctement, c'est
sur l'évènement "après MAJ" du sous formulaire sauf que la valeur prise
en compte dans le champ de table du formulaire principal est la valeur
précédente (avant modification)
ex : je modifie la valeur dans le sous formulaire 1000 -> 1500 le champ
calculé (somme) du pied de SF = 1500 par contre le champ du FP = 1000
Si je fais un nouveau changement 1500 -> 1300 le champ du FP = 1500...

je pense que je n'ai pas été clair dans mon explication :
La valeur que je veux modifier est un champ de table dans le formulaire
principal et non un contrôle calculé Indépendant.
car dans ce cas il n'y a pas de problème.

Robert


"Robert" a écrit dans le message de
news: 4251bf54$0$1232$
Bonjours a tous,

Contexte : Un sous formulaire qui contient un champ calculé (Somme)
Dans le formulaire un contrôle qui est un champ de table, doit
prendre la valeur du contrôle du SF.

Après plusieurs recherche, j'utilise du code pour faire cela mais la
mise a jour ne se fait pas bien.
L'évènement "sur activation" du SF me semblai le plus approprié mais a
l'ouverture cela pose problème (je suppose que a ce moment la , la
valeur du champ calculé ne contient pas de valeur)

voici le code que j'utilise pour écrire ma valeur dans le champ du F1.

"Forms![F_Principal].Form![montant_total] = Me.MontantTotal"
Comment exécuter cela a chaque changement dans SF1 ?

Merci d'avance pour votre réponse

Robert












Avatar
Robert
Comment n'y avais je pas penser plutôt :
Je cache le contrôle ayant pour source un champ de table et je laisse
visible le contrôle calculé et j'attribue la valeur au 1er champ lors de la
fermeture du formulaire.

Je ne sais pas si c'est bien de faire cela, mais cela fonctionne

Robert





"Raymond [mvp]" a écrit dans le message de
news: %
bonsoir.

sur le afterupdate du contrôle dans le sous-formulaire,tu mets:
DoCmd.RunCommand acCmdSaveRecord
et un requery sur le contrôle du formulaire principal.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Robert" a écrit dans le message de
news: 42531630$0$19325$
Je vous remercie pour votre aide, mais cela ne fonctionne pas.
Après de multiples essais, un seul semble fonctionner correctement, c'est
sur l'évènement "après MAJ" du sous formulaire sauf que la valeur prise
en compte dans le champ de table du formulaire principal est la valeur
précédente (avant modification)
ex : je modifie la valeur dans le sous formulaire 1000 -> 1500 le champ
calculé (somme) du pied de SF = 1500 par contre le champ du FP = 1000
Si je fais un nouveau changement 1500 -> 1300 le champ du FP = 1500...

je pense que je n'ai pas été clair dans mon explication :
La valeur que je veux modifier est un champ de table dans le formulaire
principal et non un contrôle calculé Indépendant.
car dans ce cas il n'y a pas de problème.

Robert


"Robert" a écrit dans le message de
news: 4251bf54$0$1232$
Bonjours a tous,

Contexte : Un sous formulaire qui contient un champ calculé (Somme)
Dans le formulaire un contrôle qui est un champ de table, doit
prendre la valeur du contrôle du SF.

Après plusieurs recherche, j'utilise du code pour faire cela mais la
mise a jour ne se fait pas bien.
L'évènement "sur activation" du SF me semblai le plus approprié mais a
l'ouverture cela pose problème (je suppose que a ce moment la , la
valeur du champ calculé ne contient pas de valeur)

voici le code que j'utilise pour écrire ma valeur dans le champ du F1.

"Forms![F_Principal].Form![montant_total] = Me.MontantTotal"
Comment exécuter cela a chaque changement dans SF1 ?

Merci d'avance pour votre réponse

Robert