Mise à jour intempestive

Le
Michelle15
Bonjour,
j'ai un big souci : J'ai un formulaire qui est lié à une table, des champs
avec des sources controle. J'ai un bouton de maj et un autre pour femer le
formulaire sans enregistrer .. mais là !!! big souci Acces m'enregistre quand
même mes modifications même avec l'option à non dans la macro de fermeture de
formulaire.
merci pour votre aide
Michelle
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #16802821
Salut,

"Michelle15"
| j'ai un big souci : J'ai un formulaire qui est lié à une table, des champs
| avec des sources controle. J'ai un bouton de maj et un autre pour femer le
| formulaire sans enregistrer .. mais là !!! big souci Acces m'enregistre quand
| même mes modifications même avec l'option à non dans la macro de fermeture de
| formulaire.


Tu veux dire que tu renseigne l'argument "acSaveNo" dans la commande
DoCmd.Close ?

Si c'est cela, c'est normal... puisque c'est argument concerne le formulaire
que tu ferme et non les données qu'il contient.

Pour ne pas sauver les données d'un formulaire, pour autant qu'il n'y
a pas eu d'événement qui force la sauvegarde (comme passer à un autre
enregistrement) il faut utiliser la méthode "Cancel" à la lise à jour.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Alain15
Le #16804771
Merci pour ta réponse.
J'ai donc mis dans la procedure avant mise à jour l'ordre Cancel = true
J'ai le message 'Impossible d'enregistrer cet enregistrement '
un Complement : Je ferme mon formulaire via une macro avec avertissement à
non, fermer formulaire, avertissement à oui
Je patauge un peu en ce we pluvieux
Merci pour ton aide et soutien
--
Michelle


"3stone" a écrit :

Salut,

"Michelle15"
| j'ai un big souci : J'ai un formulaire qui est lié à une table, des champs
| avec des sources controle. J'ai un bouton de maj et un autre pour femer le
| formulaire sans enregistrer .. mais là !!! big souci Acces m'enregistre quand
| même mes modifications même avec l'option à non dans la macro de fermeture de
| formulaire.


Tu veux dire que tu renseigne l'argument "acSaveNo" dans la commande
DoCmd.Close ?

Si c'est cela, c'est normal... puisque c'est argument concerne le formulaire
que tu ferme et non les données qu'il contient.

Pour ne pas sauver les données d'un formulaire, pour autant qu'il n'y
a pas eu d'événement qui force la sauvegarde (comme passer à un autre
enregistrement) il faut utiliser la méthode "Cancel" à la lise à jour.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




3stone
Le #17228191
Salut,

"Alain15"
| J'ai donc mis dans la procedure avant mise à jour l'ordre Cancel = true
| J'ai le message 'Impossible d'enregistrer cet enregistrement '
| un Complement : Je ferme mon formulaire via une macro avec avertissement à
| non, fermer formulaire, avertissement à oui


Oui, tu annulle la mise à jour, mais il faut encore annuler les modifications faite.
Pour cela, on ajoute un Me.Undo

Après cela, tu ne sauras plus rien enregistrer.

Pour avoir quelque chose de plus souple, et éviter les modifications non
remarquées, il faut un peut plus de code (toujours sur avant mise à jour):


Dim sMsg As String, iButton As Integer
sMsg = "Voulez-vous sauvegarder les modifications ?"
iButton = vbQuestion + vbDefaultButton2 + vbYesNo
If MsgBox(sMsg, iButton, "Sauver") = vbNo Then
Cancel = True
Me.Undo
End If


Un réglage important pour éviter les modifications intempestives, est de
modifier via le menu Outils, Options, onglet Clavier
le "Comportement du champ en entrée" que l'on positionne avantageusement
sur "Fin du champ"

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Alain15
Le #17235271
Ok merci super ca fonctionne nickel
Merci pour tout et encore bravo pour ton site
--
Alain


"3stone" a écrit :

Salut,

"Alain15"
| J'ai donc mis dans la procedure avant mise à jour l'ordre Cancel = true
| J'ai le message 'Impossible d'enregistrer cet enregistrement '
| un Complement : Je ferme mon formulaire via une macro avec avertissement à
| non, fermer formulaire, avertissement à oui


Oui, tu annulle la mise à jour, mais il faut encore annuler les modifications faite.
Pour cela, on ajoute un Me.Undo

Après cela, tu ne sauras plus rien enregistrer.

Pour avoir quelque chose de plus souple, et éviter les modifications non
remarquées, il faut un peut plus de code (toujours sur avant mise à jour):


Dim sMsg As String, iButton As Integer
sMsg = "Voulez-vous sauvegarder les modifications ?"
iButton = vbQuestion + vbDefaultButton2 + vbYesNo
If MsgBox(sMsg, iButton, "Sauver") = vbNo Then
Cancel = True
Me.Undo
End If


Un réglage important pour éviter les modifications intempestives, est de
modifier via le menu Outils, Options, onglet Clavier
le "Comportement du champ en entrée" que l'on positionne avantageusement
sur "Fin du champ"

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Publicité
Poster une réponse
Anonyme