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

Différence comportement ACCESS 2000-2003

5 réponses
Avatar
Joël
Re-bonjour,

dans un formulaire, une case à cocher liée à un champ "booléen" de
l'enregistrement.

La procédure suivante donne pleine satisfaction sur 2000, mais pas sur 2003
! Pourquoi ?
====================================
Private Sub Erreur_BeforeUpdate(Cancel As Integer)
If Me.Remarque = "" Or IsNull(Me.Remarque) Then
AfficheMessage "Aucune erreur sur cet enregistrement"
Else
AfficheMessage Me.Remarque
End If
Cancel = True

End Sub
=====================================
si je rajoute après cancel=true l'instruction
me.refresh
Access me dit qu'il ne peut pas enregsitrer les données dans le champ
(erreur d'exécution 2115)

Par ailleurs, je ne peux plus accéder à aucun autre champ du formulaire,
cette procédure se déclenche systématiquement.

Une idée ?
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr

5 réponses

Avatar
Joël
Bon, ben en remplaçant

Cancel = True

par

Me.Undo

cela semble fonctionner !!!

J'aimerais en connaître la raison ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Joël" a écrit dans le message de news:
443cc676$0$20178$
Re-bonjour,

dans un formulaire, une case à cocher liée à un champ "booléen" de
l'enregistrement.

La procédure suivante donne pleine satisfaction sur 2000, mais pas sur
2003 ! Pourquoi ?
=================================== > Private Sub Erreur_BeforeUpdate(Cancel As Integer)
If Me.Remarque = "" Or IsNull(Me.Remarque) Then
AfficheMessage "Aucune erreur sur cet enregistrement"
Else
AfficheMessage Me.Remarque
End If
Cancel = True

End Sub
==================================== > si je rajoute après cancel=true l'instruction
me.refresh
Access me dit qu'il ne peut pas enregsitrer les données dans le champ
(erreur d'exécution 2115)

Par ailleurs, je ne peux plus accéder à aucun autre champ du formulaire,
cette procédure se déclenche systématiquement.

Une idée ?
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr



Avatar
Raymond [mvp]
RE.

faudrait savoir......
tu places le cancel en dehors du if ce qui fait qu'il est exécuté en
permanence et tu te retrouves toujours dans la même position en sortie de
procédure. tu annules toujours ton action, bizarre, non ?

je préfère:
If Nz(Me.Remarque, "") = "" Then
que
If Me.Remarque = "" Or IsNull(Me.Remarque) Then
juste pour chipoter un peu....

--
@+
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


"Joël" a écrit dans le message de news:
443cc676$0$20178$
| Re-bonjour,
|
| dans un formulaire, une case à cocher liée à un champ "booléen" de
| l'enregistrement.
|
| La procédure suivante donne pleine satisfaction sur 2000, mais pas sur
2003
| ! Pourquoi ?
| =================================== | Private Sub Erreur_BeforeUpdate(Cancel As Integer)
| If Me.Remarque = "" Or IsNull(Me.Remarque) Then
| AfficheMessage "Aucune erreur sur cet enregistrement"
| Else
| AfficheMessage Me.Remarque
| End If
| Cancel = True
|
| End Sub
| ==================================== | si je rajoute après cancel=true l'instruction
| me.refresh
| Access me dit qu'il ne peut pas enregsitrer les données dans le champ
| (erreur d'exécution 2115)
|
| Par ailleurs, je ne peux plus accéder à aucun autre champ du formulaire,
| cette procédure se déclenche systématiquement.
|
| Une idée ?
| --
|
| Bien cordialement,
|
| Joël GARBE
| www.joelgarbe.fr
|
|
Avatar
Raymond [mvp]
le Undo fait le même effet que double-Echap et supprime toutes les
modification réalisées sur l'enregistrement.
le cancel ne fait qu'annuler l'action dans le contrôle du formulaire.
--
@+
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


"Joël" a écrit dans le message de news:
443ccc81$0$21280$
| Bon, ben en remplaçant
|
| Cancel = True
|
| par
|
| Me.Undo
|
| cela semble fonctionner !!!
|
| J'aimerais en connaître la raison ?
|
| --
|
| Bien cordialement,
|
| Joël GARBE
Avatar
Joël
Dans le cas présent, il est normal que je souhaite annuler systématiquement
mon action, la case à cocher devant revenir à son état initial !

Ce n'est qu'un indicateur qui ne doit servir qu'à afficher un message
enregistré dans un autre champs.

Ce que je ne comprends pas, c'est que cela fonctionne parfaitement en Access
2000, mais pas en Access 2003 (il semble que le Cancel = True ne soit pas
pris en compte dans cette version ?) !

Pour le reste, merci, je ne connaissais pas cette fonction Nz !

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Raymond [mvp]" a écrit dans le message
de news:
RE.

faudrait savoir......
tu places le cancel en dehors du if ce qui fait qu'il est exécuté en
permanence et tu te retrouves toujours dans la même position en sortie de
procédure. tu annules toujours ton action, bizarre, non ?

je préfère:
If Nz(Me.Remarque, "") = "" Then
que
If Me.Remarque = "" Or IsNull(Me.Remarque) Then
juste pour chipoter un peu....

--
@+
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


"Joël" a écrit dans le message de news:
443cc676$0$20178$
| Re-bonjour,
|
| dans un formulaire, une case à cocher liée à un champ "booléen" de
| l'enregistrement.
|
| La procédure suivante donne pleine satisfaction sur 2000, mais pas sur
2003
| ! Pourquoi ?
| =================================== > | Private Sub Erreur_BeforeUpdate(Cancel As Integer)
| If Me.Remarque = "" Or IsNull(Me.Remarque) Then
| AfficheMessage "Aucune erreur sur cet enregistrement"
| Else
| AfficheMessage Me.Remarque
| End If
| Cancel = True
|
| End Sub
| ==================================== > | si je rajoute après cancel=true l'instruction
| me.refresh
| Access me dit qu'il ne peut pas enregsitrer les données dans le champ
| (erreur d'exécution 2115)
|
| Par ailleurs, je ne peux plus accéder à aucun autre champ du formulaire,
| cette procédure se déclenche systématiquement.
|
| Une idée ?
| --
|
| Bien cordialement,
|
| Joël GARBE
| www.joelgarbe.fr
|
|




Avatar
Joël
Merci pour cette précision !

à plus tard peut-être ! Je vais faire mon footing pour me remettre LOL !

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Raymond [mvp]" a écrit dans le message
de news: %23%
le Undo fait le même effet que double-Echap et supprime toutes les
modification réalisées sur l'enregistrement.
le cancel ne fait qu'annuler l'action dans le contrôle du formulaire.
--
@+
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


"Joël" a écrit dans le message de news:
443ccc81$0$21280$
| Bon, ben en remplaçant
|
| Cancel = True
|
| par
|
| Me.Undo
|
| cela semble fonctionner !!!
|
| J'aimerais en connaître la raison ?
|
| --
|
| Bien cordialement,
|
| Joël GARBE