Desactiver l'enregistrement automatique - VB/VBA/VBS - Programmation
Marsh Posté le 10-05-2004 à 12:54:46
Citation : tu peux pas la faire en interne ta confirmation ? |
cad ?
Si je comprend bien je devrai demander si il veut enregistrer des qu'il a modifié et qu'il veut bougé ? J'y ai pensé mais ça pose 2 pb :
1) Recuperer le contenu des champs (étant donné qu'il en a une 15aine de modifiables cela va vite devenir lourd)
2) detecter qu'il veut passer à un autre enregistrement (je n'arrive pas à déterminer qu'il passe à un autre enregistrement quand il utilise la molette de souris).
voilà. Alors le plus simple serait qu'on me dise le moyen pour empêcher Access d'enregistrer mes champs directements (si cela es possible mais j'en doute de plus en plus).
Marsh Posté le 10-05-2004 à 14:05:56
salut ! (ça faisait longtemps, hein ?)
si tu permets à tes utilisateurs de modifier le contenu des textbox, mais qu'ensuite tu trouves un moyen pour empêcher Access d'enregistrer ces modif (s'il en existe un, mais j'ai aussi des doutes là dessus), il risquent de ne pas aprécier d'avoir fait de la saisie pour rien.
si tu veux pouvoir contrôler les modifications effectuées, le mieux est de passer la propriété "Verrouillé" de toutes tes textbox sur "oui".
comme ça tes utilisateur ne peuvent pas entrer dans les textbox, ni changer leur contenu.
Ensuite, si tu veux qu'ils puissent quand même modifier un enregistrement, au choix :
- procédure sur click de chaque textbox ouvre une inputbox qui va changer le contenu du champs (valable s'il y a un petit nombre de champs à modifier)
- partage ton form en 2 : le haut est la partie consultation, le bas la partie modification constitué de textbox indépendantes. Tu ajoutes un bouton de validation qui exécute une requête de Mise à jour.
Marsh Posté le 12-05-2004 à 10:06:38
Si ! ça existe !
je viens de le trouver par hasard : on peut réattribuer à un contrôle dépendant, sa valeur d'origine avec la propriété AncienneValeur (OldValue) :
Sub btnUndo_Click()
Dim ctlZoneTexte As Control
For Each ctlZoneTexte in Me.Controls
If ctlZoneTexte.ControlType = acTextBox Then
ctlZoneTexte.Value = ctl.OldValue
End If
Next ctl
End Sub
Marsh Posté le 12-05-2004 à 11:07:41
Arghhhh ! C'est con que tu m'ai pas dit ça plus tôt ! En fait maintenant j'ai fait tout un système qui en fait rétablit les valeurs d'origine si l'user ne veut pas enregistrer ! Mais sinon je vais essayer ce que tu m'a donné car je prèfère 100 fois faire avec ça.
Merci beaucoup, tjs efficace à ce que je vois. Fini les vacances ?
A titre d'info si ça peut interesser quelqu'un et ça concerne tjs les merdes d'access, j'ai trouvé une méthode super-fiable pour gérer la mollette à souris (merci google).
Marsh Posté le 12-05-2004 à 11:38:40
Merci BEAUCOUP !!!!!!!
Tu me simplifie vraiment la vie ! Tu ne peux pas savoir commement j'ai galéré hier pour mettre en place un système qui remplaçait ça ! Maintenant c'est trop simple !
Vraiment tu as bien intuité !
PS : Je corrige le code donné qui comportait quelques petites coquilles
Code :
|
Marsh Posté le 12-05-2004 à 12:39:08
c'est vrai ? t'as une méthode pour gérer la mollette de la souris ?
je galère dessus depuis ce matin : je ne trouve que des codes supprimant l'action, alors que je cherche à l'affecter à mon sous form (mon google marche moins bien que le tien ? )
alors oui, je le veux bien !
je suis pas en vacances : depuis le déménagement je suis mal placée : dos au couloir , faut que je bosse maintenant
Marsh Posté le 12-05-2004 à 12:58:12
Voilà le lien
http://support.microsoft.com/defau [...] us;q278379
Fais la première méthode (il faut Visual Basic et Access) mais tu peux essayer la seconde (mais chez moi celle-ci ne marchait pas du tout).
J'ai fait ça hier. Ca fonctionne nickel, tu peux ainsi détecter l'evenement de la molette et lui appliquer un traitement.
Si tu ne comprends pas l'anglais je peux t'aider, mais ç'est vraiment pas compliqué...
Bonne chance
Marsh Posté le 12-05-2004 à 14:34:55
merci. C'est en effet ce que j'avais trouvé sur google, mais ça marche pas non plus sur mon appli (p'têt parce que j'ai access 97).
et j'ai pas VB pour essayer l'autre...
j'crois que j'vais être bonne pour utiliser la méthode d'Hervé(http://www.self-access.com/access/grenier/acRedir.php?id=131) et installer la dll sur tous les postes utilisateurs.
anyway, thanks mate !
Marsh Posté le 10-05-2004 à 12:22:59
Bonjour,
j'ai un formulaire qui comporte des textBox dont les valeurs sont basés sur les champs d'une table. Donc quand je fais défiler mes enregistrements avec les boutons de navigation crées par Acces, je visualise les différentes lignes de la table.
Quand je modifie un champ de cette table par l'intermédiaire des textbox, si je passe à un autre enregistrement, Access enregistre les modifications effectuées sur les données de cette table.
Je voudrai donc simplement naviguer à travers les différrents enregistrements de la table mais ne pas garder une modification en mémoire (car je voudrai que l'enregistrement ne se fasse que par une confirmation).
Don si quelqu'un sait comment on desactive cet enregistrement auto à la con merci d'avance.