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

IHM Discussion :

Masquer champs vides [AC-2007]


Sujet :

IHM

  1. #1
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut Masquer champs vides
    Bonjour à tous,
    Je cherche en vain comment masquer les champs vides dans une requête sélection : ma requête demande de saisir un critère, suivant la valeur qui est entrée certains champs ont des valeurs et d'autres sont vides. Il y a un nombre très important de champs, 75, n'avoir la vision que de ceux qui ont des valeurs faciliterait la lecture.
    SQL ? Formulaire+VBA ? si quelqu'un a la solution.
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Bonjour,

    Le plus simple c'est formulaire + VBA avec l'événement sur activation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim ctl as control
     
    for each ctl in me.controls
         ctl.visible = not isnull(ctl.value)
    next
    Par contre ça ne rempli pas les espaces laissés vides.

    ça c'est pour le mode Formulaire Simple.

    Pour le mode formulaire continue il faut travailler avec la mise en page conditionnelle et une fonction vba.

    Cordialement,

  3. #3
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Bonsoir et merci pour votre aide.
    J'ai donc créé un formulaire et lui ai affecté un code sur activation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Current()
    Dim ctl As Control
    
     For Each ctl In Me.Controls
         ctl.Visible = Not IsNull(ctl.Value)
    Next
    End Sub
    Mais j'ai un bug sur la partie en rouge... .

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Oups !

    Certains controles n'ont pas de Value (étiquettes, cadre, boutons)

    met un

    après la ligne dim

  5. #5
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    le bug a disparut et les vides ne sont plus affichés en tant que valeurs, mais il reste les étiquettes (en-tête de colonne dans mon formulaire). Si je fais un export sous excel du formulaire le résultat est bon, seules les colonnes avec des valeurs sont reprises, mais sur le formulaire j'ai les étiquettes qui polluent toujours la lecture. Est-il possible de les masquer elles aussi ?

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Oui tu peux toujours renommer les étiquettes comme ceci

    ET + le nom de son controle

    Dans la boucle tu ajoutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Current()
    Dim ctl As Control
    on error resume next
     
    For Each ctl In Me.Controls
         ctl.Visible = Not IsNull(ctl.Value)
         me.controls("ET" & me.ctl.name).visible = Not IsNull(ctl.Value)
    Next
     
    End Sub

  7. #7
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Bonjour Fabrice et encore merci pour ton aide.
    J'ai modifié le code comme tu me l'as indiqué mais j'ai une erreur de compil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("ET" & Me.ctl.Name).Visible = Not IsNull(ctl.Value)

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Salut,

    essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("ET" & ctl.Name).Visible = Not IsNull(ctl.Value)
    De plus dans le code que t'a donné Loufab il me semble que, par exemple, l'étiquette de la zone de texte nommée "Texte1" doit s'appeler "ETTexte1"...

  9. #9
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Bonsoir User,
    Le code que tu proposes supprime effectivement l'erreur de compilation mais ne change rien au problème d'affichage des étiquettes des champs ne comportant aucun enregistrement. En fait cette ligne ne déclenche aucune action sur le formulaire.

    Ne pourrait-on pas agir sur la requête elle-même, par une instruction SQL, ALTER TABLE DROP par exemple ?

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Re,

    forcément tu as un :

    donc au niveau de cette ligne sans le on error resume next tu aurais une erreur d'exécution genre nom d'étiquette incorrect !

    Comme je te l'ai dit plus haut Les noms de tes étiquettes doivent être du genre:

    "ETNomContrôle":

    ou "NomContrôle" est le nom du contrôle contenant la valeur nulle et "ETNomContrôle" le nom de l'étiquette du contrôle en question...

    Comprends-tu ?

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Quel mode d'affichage utilises-tu pour ton formulaire ?
    Feuille de données ?

  12. #12
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    J'ai renommé mes étiquettes ETNomduchamp mais ça ne change rien.
    Je pense que je ne comprend pas vraiment ce que tu veux dire.

  13. #13
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Oui, feuille de données

  14. #14
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Re,

    Pour masquer une colonne en mode feuille de données tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("NomContrôle").ColumnHidden = True
    Peux tu joindre un aperçu de ton formulaire en mode feuille de donnée en expliquant ce que tu souhaites masquer ?

  15. #15
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Je ne peux que te renvoyer à mon premier post. Le problème est que je connais pas à l'avance les colonnes qui devront être masquées puisque c'est fonction d'une valeur entrée par l'utilisateur : "UE". Pour les tests je travaille sur 3 champs ET108228;ETE0113;ETE3092 mais en réalité il y en a 77.
    Quand je rentre 36 pour la valeur de UE, je ne voudrais que voir que les champs qui comporte une valeur (pour 36=masquer ET108228).
    Fichiers attachés Fichiers attachés

  16. #16
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Re,

    Peux-tu joindre ta base au format 2000 ou 2003,que je teste moi-même, ton formulaire à l'air en mode continu ?

  17. #17
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Je n'arrive pas à joindre ma base, format mdb non reconnu dans les extentions de PJ acceptées sur le forum. Par mail ?
    J'ai mis mon formulaire en mode simple mais ça ne change rien.

  18. #18
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Salut,
    Pour ne pas zipper ta base et joindre le fichier

    Sinon il faudrait mettre la propriété affichage par défaut de ton formulaire à feuille de données.

    et après si ton formulaire en mode feuille de données n'affiche qu'une ligne essayer ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Load()
    Dim ctl As Control
     
    For Each ctl In Me.Controls
       If TypeOf ctl Is TextBox Then
         ctl.ColumnHidden = IsNull(ctl.Value)
       End If
    Next
     
    End Sub
    A tester...

  19. #19
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Ca marche mais je suis confronté à un problème de taille, j'ai un nombre de champs, 77, supérieur à ce qui est accepté dans un formulaire.

  20. #20
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Salut,

    Normalement Access accepte au plus 254 contrôles dans un formulaire.
    As-tu essayé de recréer le formulaire ou de compacter ta base ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Masquer un champ vide dans un état
    Par Cantalou dans le forum VBA Access
    Réponses: 6
    Dernier message: 15/06/2021, 11h17
  2. [Joomla!] Masquer un champ vide
    Par kovrov dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/12/2014, 20h20
  3. Masquer un champ vide dans un formulaire access
    Par anassyto dans le forum IHM
    Réponses: 2
    Dernier message: 25/06/2013, 16h24
  4. masquer les champs vide d'un repeater
    Par perloutta dans le forum ASP.NET
    Réponses: 18
    Dernier message: 31/03/2009, 16h59
  5. tri avec les champs vides en dernier
    Par r-zo dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/09/2003, 13h40

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