Access vider champs formulaire avant fermetur
Maxx
-
OlivrT Messages postés 323 Date d'inscription Statut Membre Dernière intervention -
OlivrT Messages postés 323 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici la situation: j'ai un formulaire d'ajout comprenant +- 80 champs de tous types (txt, combobox, listbox). Les champs font références à plusieurs tables. Certains champs (de ts types) ne peuvent pas être nuls. Je veux que l'utilisateur ai un bouton "fermer formulaire" sans que l'enregistrement soit sauvegardé. Le problème survient lorsque certains champs où le nul est interdit ne sont pas remplis! A chaque fois j'ai le même message « vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table "MaTable"».
J'ai essayé plusieurs méthodes: effacer enregistrement puis fermer formulaire, vider les champs en faisant une boucle sur la collection de controles en donnant la valeur nulle ou "" ou false en fonction du type de controle. En fait access attribue la valeur "0" à tous les champs, et ce n'est évidemment pas compatible avec certains champs.
Bref je n'ai tjs pas reussi à vraiment "vider" les champs.
Je sais pas si j'ai été totalement clair, si vous avez des questions n'hésitez pas.
Savez-vous m'aider?
Merci d'avance
Voici la situation: j'ai un formulaire d'ajout comprenant +- 80 champs de tous types (txt, combobox, listbox). Les champs font références à plusieurs tables. Certains champs (de ts types) ne peuvent pas être nuls. Je veux que l'utilisateur ai un bouton "fermer formulaire" sans que l'enregistrement soit sauvegardé. Le problème survient lorsque certains champs où le nul est interdit ne sont pas remplis! A chaque fois j'ai le même message « vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table "MaTable"».
J'ai essayé plusieurs méthodes: effacer enregistrement puis fermer formulaire, vider les champs en faisant une boucle sur la collection de controles en donnant la valeur nulle ou "" ou false en fonction du type de controle. En fait access attribue la valeur "0" à tous les champs, et ce n'est évidemment pas compatible avec certains champs.
Bref je n'ai tjs pas reussi à vraiment "vider" les champs.
Je sais pas si j'ai été totalement clair, si vous avez des questions n'hésitez pas.
Savez-vous m'aider?
Merci d'avance
A voir également:
- Access vider champs formulaire avant fermetur
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Retrouver mon compte copains d'avant - Forum Réseaux sociaux
- Avant browser - Télécharger - Navigateurs
1 réponse
Bonjour,
je pourrais surement vous aider mais je vous avoue que je ne comprends pas bien votre problème !
Ce genre de situation ne se présente que si on essaye de sauver un enregistrement et que dans celui-ci, une valeur est définit comme obligatoire. Le cas d'une clé étrangère en est un parfait exemple.
Donc pourquoi voulez-vous vider vos champs ?
Si vous ne voulez pas sauvegarder votre enregistrement, vous appuyez sur Cancel et Access annule les modifications apportées et vous pouvez fermer votre formulaire sans problème ...
Bàv,
je pourrais surement vous aider mais je vous avoue que je ne comprends pas bien votre problème !
Ce genre de situation ne se présente que si on essaye de sauver un enregistrement et que dans celui-ci, une valeur est définit comme obligatoire. Le cas d'une clé étrangère en est un parfait exemple.
Donc pourquoi voulez-vous vider vos champs ?
Si vous ne voulez pas sauvegarder votre enregistrement, vous appuyez sur Cancel et Access annule les modifications apportées et vous pouvez fermer votre formulaire sans problème ...
Bàv,
Donc comme vous comprenez bien, je veux que access ne sauvegarde pas ce que l'utilisateur a entré. Quelle est le controle "Cancel" dont vous me parlez? En fait j'ai un bouton "retour a la page précendente" sur lequel l'utilisateur clique et le formulaire se ferme. Actuellement la sauvegarde se fait automatiquement par defaut, ce que je ne veux pas. J'imagine qu'il y a une macro incoporée a affecter au bouton qui empêche cette sauvegarde automatique. j'ai essayé "FermerFenêtre" avec la propriété "Enregistrer" définie sur Non => Access sauvegarde toujours! j'ai essayé "AnnulerEnregistrement", ça ne marche pas non plus.
Savez-vous m'aider?
Merci d'avance
Empêcher un utilisateur, complètement, de sauver des données n'est peut-être pas une bonne idée ...
Ceci étant dit, pour se faire, vous pouvez utiliser l'évènement "Avant MAJ" ou "Before Update" :
"Empêcher un utilisateur, complètement, de sauver des données n'est peut-être pas une bonne idée ..."
L'utilisateur peut sauvegarder les données en cliquant sur un bouton "enregistrer". Je veux que ce soit la seule manière que la sauvegarde se fasse.
J'apprécie vraiment votre aide mais j'ai l'impression que vous ne comprenez pas mon problème.. Je veux simplement qu'à la fermeture du formulaire, la sauvegarde ne se fasse pas.
Bav
Si vous désirez obliger un utilisateur à passer par ce bouton "Sauvegarder" c'est possible mais vous devrez programmer ce que Access est pré-programmé à faire :
1) Il faut enlever l'indicateur de l'enregistrement courant
2) Il faut enlever les boutons de navigation d'Access ! Car eux aussi permettent de sauver automatiquement un enregistrement
3) Il faul enlever le bouton "Enregistrer" du menu d'Access
Pour les points 1 et 2, vous trouverez cela dans les propriétés de votre formulaire. Pour le point 3, vous serez obliger de le coder en VBA en passant par la collection Toolbars ou de faire un macro.
4) Vous devrez ajouter à votre formulaire, un bouton d'ajout, de modification, de suppression, aller à l'enregistrement suivant, précédent, ...
C'est possible, je l'ai déjà fait dans plusieurs bases de données pour des clients qui avaient le même souci, mais c'est plus long à réaliser et surtout il y a beaucoup de choses à vérifier.