IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros Access Discussion :

Disparition d'un formulaire après application d'un filtre via macro Access [AC-2010]


Sujet :

Macros Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Disparition d'un formulaire après application d'un filtre via macro Access
    Bonjour à toutes et à tous,

    D'avance, je vous remercie pour l'attention que vous accorderez à ma requête.

    Je travaille une base de données Access. J'ai créé un formulaire FormNC lié à une requête ReqNC. J'ai mis ce formulaire en mode Formulaire uniquement, sans ligne de séparation ni sélecteur, afin de donner une allure plus jolie à l'application.

    Ce formulaire comprend de nombreux champs, dont trois sur lesquels je tiens à appliquer un filtre :
    - ChampA (champ texte)
    - ChampB (champ date)
    - ChampC (champ booléen)

    Je crée donc trois outils en haut du formulaire :
    - Une zone de texte txtFiltreA
    - Une liste déroulante paramétrée lisFiltreB
    - Une case à cocher chkFiltreC

    J'ajoute également un bouton cmdFiltre qui filtre les données reprises selon les informations encodées par l'utilisateur dans txtFiltreA, lisFiltreB et chkFiltreC.

    Ensuite, je crée une macro Access pour l'événement "clic" sur cmdFiltre (bien via l'interface création de macro en Access, et non en VBA puisque je ne suis pas encore assez à l'aise en VBA, mais je possède quelques rudiments et j'essaye de progresser).

    Voici la macro :

    1. Si txtFiltreA Est Null Alors
    2. Zone de Message : Veuillez encoder une valeur dans txtFiltreA
    3. ArrêtMacro
    4. Sinon si lisFiltreB Est Null Alors
    5. Zone de Message : Veuillez encoder une valeur dans lisFiltreB
    6. ArrêtMacro
    7. Sinon
    8. Appliquer Filtre : ChampA = txtFiltreA Et ChampB = lisFiltreB Et ChampC = chkFiltreC
    9. Fin Si

    La macro fonctionne sans souci lorsqu'il existe des lignes dans ReqNC qui correspondent au filtre : l'ensemble des données retournées par le filtre n'est pas vide. Le formulaire FormNC fonctionne alors sans problème, les calculs souhaités se déroulent sans accroche, etc.

    Par contre, si aucune donnée dans ReqNC ne répond à la triple condition txtFiltreA, lisFiltreB et chkFiltreC, le résultat après appui sur le bouton cmdFiltre est... un formulaire vide, une page monochrome, sans même l'apparition des labels, des boutons, des champs, des lignes, etc. Tout disparaît et plus aucun moyen de modifier txtFiltreA, lisFiltreB et chkFiltreC... En somme, un gros bug pour l'utilisateur qui ne sait plus rien faire, si ce n'est quitter l'application.

    J'ignore comment je peux supprimer ce bug. Existe-t-il une fonction en macro qui permet d'annuler la macro si le résultat d'un filtre est un ensemble vide ? Dois-je effectuer un test supplémentaire ? Pourquoi le formulaire devient une zone monochrome, au lieu de ne retourner aucune valeur mais en conservant l'affichage des labels, boutons, etc. ?

    Y a-t-il une solution via l'édition de macro en Access ? Ou faut-il passer par du VBA ? Voire du VBA avec du SQL intégré ?

    Je suppose que pour la plupart d'entre vous, mon erreur dans la confection de ce formulaire est manifeste...

    Merci à toutes les bonnes âmes indulgentes qui voudront bien m'ouvrir les portes sur lesquelles je me cogne encore la tête, faute de lumière ! ;-)

    Bonne journée,

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Dans un sens c'est un peu normal. si il n'y a pas de données il n'y a pas d'affichage.

    Quand tu dis :

    Je crée donc trois outils en haut du formulaire :
    Est-ce que tu parles de l'entête du formulaire ? Si non, essaye en mettant tes champs dans l'entête. Il me semble qu'elle est toujours affichée.

    Une autre solution est de mettre tes champs de sélection dans un formulaire et d'inclure ton formulaire d'affichage en sous-formulaire.
    Cela complique un peu l'écriture du critère mais cela marchera.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Un grand merci pour ta réponse. Tu me fais découvrir le sous-formulaire et ses possibilités. Je viens de tester et en effet, cela fonctionne.

    Je mets les trois champs de recherche dans un formulaire, et le reste en sous-formulaire. Tant qu'il n'y a pas de résultat de recherche, le sous-formulaire reste en "monochrome". Mais au moins les trois champs de recherche et le bouton de filtre restent visibles et donc utilisables.

    Cela complique la structure, mais au moins le résultat est là.

    Cordialement.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Si tu considère que la réponse est complète, merci d'appuyer sur en bas de discussion.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/06/2014, 15h20
  2. Aide - Masquer des colonnes après application d'un filtre auto simple
    Par latouk dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 03/08/2011, 22h29
  3. Réponses: 2
    Dernier message: 08/09/2010, 10h15
  4. Réponses: 2
    Dernier message: 05/01/2007, 15h02
  5. [ JSP ] Réaffichage des données d'un formulaire apres un ret
    Par captainpouet dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/04/2004, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo