OVH Cloud OVH Cloud

Pas de MAJ d'un état après modification d'un enregistrement

5 réponses
Avatar
Céline
Bonjour à tous,

J'ai créé un formulaire basé sur une table. A l'ouverture de ce formulaire,
je n'autorise pas la modification des données. Il faut cliquer sur un bouton
pour effectuer sa modification puis ensuite cliquer sur un autre bouton pour
enregistrer les modifications effectuées. Sur un autre bouton, je lance un
état correspondant à l'enregistrement présenté dans mon formulaire. Or,
lorsque je fais une modif (bien qu'elle soit visible dans le formulaire),
elle n'est pas répercutée dans l'état. Cette modif n'apparaît que lorsque je
ferme le formulaire, l'ouvre de nouveau et lance l'état. J'ai également
vérifié, l'enregistrement des données modifiées se fait bien dans la table.
Mon état est basé sur plusieurs tables.

Avez-vous des solutions à me proposer afin de résoudre ce problème bien
gênant ?

Merci d'avance et bonne journée,

Céline

5 réponses

Avatar
Tisane
Bonjour Céline,

J'ai créé un formulaire basé sur une table. A l'ouverture de ce
formulaire,
je n'autorise pas la modification des données. Il faut cliquer sur un
bouton
pour effectuer sa modification puis ensuite cliquer sur un autre bouton
pour
enregistrer les modifications effectuées. Sur un autre bouton, je lance un
état correspondant à l'enregistrement présenté dans mon formulaire. Or,
lorsque je fais une modif (bien qu'elle soit visible dans le formulaire),
elle n'est pas répercutée dans l'état. Cette modif n'apparaît que lorsque
je
ferme le formulaire, l'ouvre de nouveau et lance l'état. J'ai également
vérifié, l'enregistrement des données modifiées se fait bien dans la
table.
Mon état est basé sur plusieurs tables.


L'enregistrement des modifs n'est sans doute pas fait quand tu cliques sur
le bouton de l'état.
Je ne suis bonne en VBA mais il me semble que tu peux ajouter
DoCmd.RunCommand acCmdSaveRecord
au début de ton module d'affichage de l'état.

--
Tisane
"

Avatar
Raymond [mvp]
Bonjour.

il est préférable de le faire dans le formulaire lui-même :
Me.Dirty= False
DoCmd.OpenReport "monreport" .........

DoCmd.RunCommand acCmdSaveRecord
ne peut pas fonctionner car c'est l'état qui a le focus et que docmd
s'applique à l'objet actif, donc l'état.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"Tisane" a écrit dans le message de news:
%
| Bonjour Céline,
|
| > J'ai créé un formulaire basé sur une table. A l'ouverture de ce
| > formulaire,
| > je n'autorise pas la modification des données. Il faut cliquer sur un
| > bouton
| > pour effectuer sa modification puis ensuite cliquer sur un autre bouton
| > pour
| > enregistrer les modifications effectuées. Sur un autre bouton, je lance
un
| > état correspondant à l'enregistrement présenté dans mon formulaire. Or,
| > lorsque je fais une modif (bien qu'elle soit visible dans le
formulaire),
| > elle n'est pas répercutée dans l'état. Cette modif n'apparaît que
lorsque
| > je
| > ferme le formulaire, l'ouvre de nouveau et lance l'état. J'ai également
| > vérifié, l'enregistrement des données modifiées se fait bien dans la
| > table.
| > Mon état est basé sur plusieurs tables.
|
| L'enregistrement des modifs n'est sans doute pas fait quand tu cliques sur
| le bouton de l'état.
| Je ne suis bonne en VBA mais il me semble que tu peux ajouter
| DoCmd.RunCommand acCmdSaveRecord
| au début de ton module d'affichage de l'état.
|
| --
| Tisane
| "
|
Avatar
Céline
Merci à tous les deux pour vos solutions qui m'ont mise sur la bonne piste.
En effet, dans mon formulaire, j'avais bien inséré une commande de
sauvegarde de l'enregistrement mais elle venait après la ligne de code
interdisant la modification des enregistrements (Me.AllowEdits = false) !
C'est maintenant réparé.

Merci encore,

Céline.

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

il est préférable de le faire dans le formulaire lui-même :
Me.Dirty= False
DoCmd.OpenReport "monreport" .........

DoCmd.RunCommand acCmdSaveRecord
ne peut pas fonctionner car c'est l'état qui a le focus et que docmd
s'applique à l'objet actif, donc l'état.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"Tisane" a écrit dans le message de news:
%
| Bonjour Céline,
|
| > J'ai créé un formulaire basé sur une table. A l'ouverture de ce
| > formulaire,
| > je n'autorise pas la modification des données. Il faut cliquer sur un
| > bouton
| > pour effectuer sa modification puis ensuite cliquer sur un autre
bouton

| > pour
| > enregistrer les modifications effectuées. Sur un autre bouton, je
lance

un
| > état correspondant à l'enregistrement présenté dans mon formulaire.
Or,

| > lorsque je fais une modif (bien qu'elle soit visible dans le
formulaire),
| > elle n'est pas répercutée dans l'état. Cette modif n'apparaît que
lorsque
| > je
| > ferme le formulaire, l'ouvre de nouveau et lance l'état. J'ai
également

| > vérifié, l'enregistrement des données modifiées se fait bien dans la
| > table.
| > Mon état est basé sur plusieurs tables.
|
| L'enregistrement des modifs n'est sans doute pas fait quand tu cliques
sur

| le bouton de l'état.
| Je ne suis bonne en VBA mais il me semble que tu peux ajouter
| DoCmd.RunCommand acCmdSaveRecord
| au début de ton module d'affichage de l'état.
|
| --
| Tisane
| "
|




Avatar
Tisane
Bonjour Raymond,

il est préférable de le faire dans le formulaire lui-même :
Me.Dirty= False
DoCmd.OpenReport "monreport" .........
DoCmd.RunCommand acCmdSaveRecord
ne peut pas fonctionner car c'est l'état qui a le focus et que docmd
s'applique à l'objet actif, donc l'état.


Tu m'intrigues... Même si cette commande est placée avant DoCmd.OpenReport ?
Quoiqu'il en soit, j'opte pour ta répoonse ;-)
--
Tisane

| > J'ai créé un formulaire basé sur une table. A l'ouverture de ce
| > formulaire,
| > je n'autorise pas la modification des données. Il faut cliquer sur un
| > bouton
| > pour effectuer sa modification puis ensuite cliquer sur un autre
bouton
| > pour
| > enregistrer les modifications effectuées. Sur un autre bouton, je
lance
un
| > état correspondant à l'enregistrement présenté dans mon formulaire.
Or,
| > lorsque je fais une modif (bien qu'elle soit visible dans le
formulaire),
| > elle n'est pas répercutée dans l'état. Cette modif n'apparaît que
lorsque
| > je
| > ferme le formulaire, l'ouvre de nouveau et lance l'état. J'ai
également
| > vérifié, l'enregistrement des données modifiées se fait bien dans la
| > table.
| > Mon état est basé sur plusieurs tables.
|
| L'enregistrement des modifs n'est sans doute pas fait quand tu cliques
sur
| le bouton de l'état.
| Je ne suis bonne en VBA mais il me semble que tu peux ajouter
| DoCmd.RunCommand acCmdSaveRecord
| au début de ton module d'affichage de l'état.
|
| --
| Tisane
| "
|




Avatar
Raymond [mvp]
tu avais indiqué sur ton message:
au début de ton module d'affichage de l'état
ce qui n'était pas précis pour un débutant.
mais si c'est bien dans le formulaire, c'est bon comme solution. quoi que je
préfère personnellement éviter au maximum le DoCmd.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"Tisane" a écrit dans le message de news:

| Bonjour Raymond,
|
| > il est préférable de le faire dans le formulaire lui-même :
| > Me.Dirty= False
| > DoCmd.OpenReport "monreport" .........
| > DoCmd.RunCommand acCmdSaveRecord
| > ne peut pas fonctionner car c'est l'état qui a le focus et que docmd
| > s'applique à l'objet actif, donc l'état.
|
| Tu m'intrigues... Même si cette commande est placée avant DoCmd.OpenReport
?
| Quoiqu'il en soit, j'opte pour ta répoonse ;-)
| --
| Tisane