Vider un formulaire

Comment faire en sorte qu’un formulaire dépendant s’affiche sur une fiche vide (tous les champs vides) ?

Plusieurs méthodes :

  • Si vous souhaitez uniquement faire des saisies nouvelles dans le formulaire (ajouter des enregistrements sans voir les anciens), faites apparaître les propriétés du formulaire, et réglez Entrée données sur Oui.
  • Si vous souhaitez démarrer sur un enregistrement vierge mais pouvoir vous déplacer sur les anciens enregistrements, réglez définissez l’événement Sur ouverture (Form_Load) de votre formulaire comme ci-dessous :

Notez qu’il ne s’agit pas vraiment de « vider » une fiche, mais plutôt de se déplacer sur un enregistrement vierge (ce qui n’est pas la même chose :-)).

Vous aimerez aussi...

10 réponses

  1. Hervé Inisan dit :

    Nanille > L’article sur la sélection automatique de texte est en ligne.

  2. Nanille dit :

    Il y a bien un nouvel enregistrement qui s’affiche car j’ai mis le code de ton article à l’ouverture du formulaire pour qu’il renvoie sur un nouvel enregistrement ( à l’ouverture, tous mes champs sont blancs).
    Je ne me suis peut-être pas bien exprimée, j’ai un certain nombre de critères à rentrer dans mon formulaire dont des listes déroulantes en cascade.
    Dans ces listes, soit la valeur que je souhaite rentrer existe déjà et je la choisi, soit je peux en saisir une nouvelle.
    Sachant que ce n’est pas moi qui vais utiliser la base de donnée, et qu’il fallait que j’entre quelque chose au lieu de « =null » comme tu me l’a expliqué plus haut pour que mes champs se réinitialisent, j’ai mis la phrase « choisissez ou saisissez une valeur ».
    Mais lorsque je clic dans la liste déroulante pour entrer une nouvelle valeur, ce texte reste affiché et il faut que je l’efface avant de pouvoir écrire autre chose.
    Comme dit plus haut, je ne peux pas faire en sorte qu’il devienne « vide » du coup je cherche à ce qu’il soit en surbrillance afin qu’à la première lettre tapée, tout ce texte soit remplacé.
    J’espère que j’ai été plus claire cette fois ci.
    Encore merci pour toute ton aide.
    (En testant plusieurs trucs, je viens de remarquer que mon problème n’était pas tout à faite résolu finalement, car mon numéro auto lui ne se réinitialise pas, et si je met également un code du genre : Me.Liste3 = « … », il reste « … », il va falloir que je me dépatouille encore avec ça !) 🙂

  3. Hervé Inisan dit :

    Nanille > Je posterai un article demain pour répondre à ta question. Mais attention : d’après ce que tu dis, tu ne crées pas d’enregistrement, par contre tu modifies l’enregistrement affiché à l’écran (ouvre la table pour le vérifier). D’autre part, si tu places  »  » dans une zone de texte, le champ n’est pas vide, il contient un espace (donc la saisie est faussée).

    Sauf erreur de saisie, on vide rarement un enregistrement dans Access. Dans ton approche, « vider » implique d’effacer les valeurs de l’enregistrement qui est affiché.

    Par contre, on peut se placer sur un nouvel enregistrement vierge (qui lui sera ajouté à la base). Ça se fait par exemple en cliquant sur le « triangle étoilé » en bas du formulaire, ou en utilisant le code VBA donné dans cet article. Le résultat ne sera pas le même au niveau de la table.

  4. Nanille dit :

    Autre petite question, je n’arrive pas à faire en sorte qu’au clic dans le champ, le texte soit sélectionné afin de ne pas avoir à effacer tous les caractères un par un pour saisir un nouvel enregistrement.
    J’ai essayé de faire en sorte qu’il soit vide :
    ma_liste.value = «  »
    mais je ne peux pas à cause de mon option non Null et cela fonctionne avec un espace :
    ma_liste.value =  » « 
    mais du coup il faut quand même l’effacer avant de créer un nouvel enregistrement…(compliqué sachant qu’au final je ne serais pas la personne qui se servira de la base)
    Par contre je pense que le présélectionner au clic est faisable. Avec une tabulation la présélection se fait automatiquement mais au clic non.
    Vois-tu une solution à mon problème ?

  5. Hervé Inisan dit :

    Nanille > Content que ça marche ! 🙂

  6. Nanille dit :

    Ça résout parfaitement mon problème.
    Merci encore.

  7. Hervé Inisan dit :

    Nanille > Dans ce cas, il y a peut-être une autre valeur autorisée, à la place de Null, ça dépend de ta construction. Ces valeurs sont celles affichées par défaut lorsqu’on crée un nouvel enregistrement dans le formulaire.

  8. Nanille dit :

    Je ne peux pas mettre « = Null » Sachant que j’ai demandé à ce que ces champs ne puissent pas être null, j’ai une erreur à cause de ça.

  9. Hervé Inisan dit :

    Nanille > La solution consisterait à réinitialiser chaque liste « dépendante » après chaque modification d’une liste précise. Concrètement, il faudrait programmer l’événement « Après MAJ » de la liste1 en y mettant quelque chose comme :

  10. Nanille dit :

    Après mon problème du numéro auto résolu, en voici un autre… 🙂
    J’ai remarqué qu’en remplissant mon formulaire avec des listes déroulantes en cascade, si jamais je me suis trompée en entrant mon échantillon dans la base et qu’il faut que je modifie la première liste et donc les suivantes, je peux le faire mais en modifiant la première, les suivantes restent inchangées et du coup, je peux même valider sans avoir changé les champs suivant ( ce qui est incohérent : on peut comparer mes listes à des branches d’un arbre, si je lui dit que c’est la branche A que je prends puis la branche A1 puis la A1c, si je change dans la première liste de A en B et que les suivantes restent A1 et A1c cela n’est pas possible)
    Comment faire pour qu’en changeant le premier cela réinitialise les suivants, en changeant seulement le deuxième, cela réinitialise seulement les suivants et pas le premier…
    Mon champ numéroauto lui non plus ne se modifie pas, il est basé sur les listes 1 et 3 et même en changeant le mot de la liste 1 il va rester avec le premier code.
    Je connaissais ce code pour vider le formulaire complètement mais pour seulement quelques champs je ne trouve pas d’infos.

    Merci de ton aide

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *