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

Access Discussion :

Afficher un SF en fonction d'un critère sélectionné dans une zone de liste d'un Form


Sujet :

Access

  1. #1
    Membre du Club Avatar de popoliline
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut Afficher un SF en fonction d'un critère sélectionné dans une zone de liste d'un Form
    Bonjour,

    tout est plus ou moins dit dans le titre mais je reformule quand même ma question:
    Est-il possible d'afficher ou de masquer un SF en fonction d'un critère sélectionné dans une zone de liste ?

    Je m'explique par un exemple:
    Je voudrais faire un Formulaire de commande (avec un Id_Commande comme clé) sur lequel l'utilisateur aura 2 possibilités, faire une commande de produits OU une commande de travaux (c'est l'un ou l'autre, pas les 2 en même temps).
    Donc si dans ma zone de liste j'ai 2 critères: Produits et Travaux du sol
    Je voudrais en sélectionnant "Produits" ne pouvoir utiliser que le SF relatif aux Produits (car les informations à rentrer sont différentes entre les Produits et les Tavaux du sol et je ne souhaite pas que l'utilisateur se mélange les pinceaux en ayant trop d'informations). Idem si je sélectionne le critère "Travaux"

    Cela doit être possible mais je ne sais pas trop comment procéder en VBA. Il faut probablement utiliser le code Visible ou quelque chose comme ça mais c'est le quelque chose comme ça qu'il faudrait que je trouve .
    J'ai trouver du code pour Afficher en fonction d'une case à cocher mais pour ce qui est d'une zone de liste, je n'ai pas trouvé, et débutante en VBA, je ne connaît pas toutes les subtilités de cet animal

    Par contre je ne sais pas trop comment faire si le 2ème SF n'est pas affiché car en fait les 2 SF possédent chacun un identifiant (Id_Prod et Id_Tvx) qui sont mis dans un table de jointure avec l' Id_Commande. car la commande peut avoir plusieurs porduits OU plusieurs travaux. donc je sais pas trop s'il y aura un pb de valeur Null pour une clé si je ne remplis pas le SF au moins par un Id_Produit (ou Travaux) par une valeur 0 en signifiant qu'il ne s'agit d'aucun produit (ou travaux).
    je sais pas si ce pb est très clair mais bon...je viens d'y penser

    Donc si quelqu'un avait une solution, ce sera avec plaisir
    Merci d'avance.
    Pauline

  2. #2
    Invité
    Invité(e)
    Par défaut C'est possible...

    Donc si dans ma zone de liste j'ai 2 critères: Produits et Travaux du sol
    Je voudrais en sélectionnant "Produits" ne pouvoir utiliser que le SF relatif aux Produits
    Si les sous-formulaire sont directement sur le formulaire principal, il suffit de mettre dans l'évènement "Après mise à jour" du controle Zone de Liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Liste_AfterUpdate()
    Select Case Me.Liste.value
      Case "Produits" ' Texte qui s'affiche dans la liste
        Me.MonSousFormProduits.Visible = True
        Me.MonSousFormTravaux.Visible = False
     
      Case "Travaux du sol"
        Me.MonSousFormProduits.Visible = False
        Me.MonSousFormTravaux.Visible = True
    End Select
    Si les sous-formulaire sont dans un controle onglet, il suffit de mettre dans l'évènement "Après mise à jour" du controle Zone de Liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Liste_AfterUpdate()
    ' Le controle onglet porte le nom de "CtlTab0
    ' 1ère page = Produits
    ' 2ème page = Travaux
    Select Case Me.Liste.value
      Case "Produits" ' Texte qui s'affiche dans la liste
        Me.CtlTab0.Pages(0).Visible = True
        Me.CtlTab0.Pages(1).Visible = False
     
      Case "Travaux du sol"
        Me.CtlTab0.Pages(0).Visible = False
        Me.CtlTab0.Pages(1).Visible = True
    End Select
    Par contre je ne sais pas trop comment faire si le 2ème SF n'est pas affiché car en fait les 2 SF possédent chacun un identifiant (Id_Prod et Id_Tvx) qui sont mis dans un table de jointure avec l' Id_Commande. car la commande peut avoir plusieurs porduits OU plusieurs travaux. donc je sais pas trop s'il y aura un pb de valeur Null pour une clé si je ne remplis pas le SF au moins par un Id_Produit (ou Travaux) par une valeur 0 en signifiant qu'il ne s'agit d'aucun produit (ou travaux)
    Si tes sous-formulaire ont les propriété "Modif autorisée" et "Ajout aurorisé" à vrai, il n'y aura pas de problème d'affichage ou non !

    Voilà

  3. #3
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 111
    Points : 1 612
    Points
    1 612
    Par défaut
    ma soluce pour ce genre de truc :
    dans la requete :
    Forms!MonFormulaire.listederoulante

Discussions similaires

  1. [AC-2003] afficher tous les critères contenus dans une zone de liste modifiable
    Par facteur dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/03/2014, 17h21
  2. Réponses: 2
    Dernier message: 05/12/2006, 15h29
  3. Afficher 2 colones d'un tableau dans une zone de liste
    Par Floch dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2006, 09h37
  4. Réponses: 28
    Dernier message: 01/12/2005, 22h43
  5. [VB.NET] fonction qui injecte du html dans une zone précise
    Par denisvignes dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/10/2005, 09h33

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