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

Requêtes et SQL. Discussion :

Alimentation d'une liste déroulante


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 179
    Par défaut Alimentation d'une liste déroulante
    Bonjour,

    je cherche à alimenter via une requête SQL une liste déroulante afin de pouvoir la lier sur la première colonne en clé externe.

    Ma table de départ est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SERV_ID                  SERV_DESCRIPTION                  SERV_SUPERIEUR
    1                            Direction générale                            0
    2                            Services généraux                           1
    3                            Secrétariat                                     2
    4                            Chargé de mission                            2
    5                            Contrôle de gestion                          2
    6                            Service achat                                  2
    7                            Direction des SI                               1
    8                            Secrétariat                                     7
    9                            HotLine                                          7
    Je voudrais que ma liste déroulante puisse se présenter "en arbre" sous la forme suivante en gardant les tirets sachant que le niveau de profondeur de mon arbre peut être plus important :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Direction générale
    - Services généraux
    ---- Secrétariat
    ---- Chargé de mission
    ---- Contrôle de gestion
    ---- Achat
    - Direction des SI
    ---- Secrétariat
    ---- Assistance informatique
    Je ne sais pas si je suis très clair. Ne pas hésiter à me poser plus de questions si besoin.

    En tous les cas, merci par avance pour votre aide pour résoudre mon problème qui ne me permet pas aujourd'hui de finaliser mon projet de base de données Access.

    Sat478

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Peux-tu ajouter un attribu 'profondeur' à ta table des services ? Access peut le calculer en utilsisant du VBA mais c'est généralement assez lent.

    Bref admettons que tu ais cet attribut il suffit de faire une requête qui te donne :

    String([Profondeur],"-") & " " & [SERV_DESCRIPTION])

    Sinon tu peux aussi regarder le contrôle TreeView qui présente des données sous forme d'arbre.

    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 confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 179
    Par défaut
    Bonjour,

    merci pour ta réponse.

    J'ai déjà regardé le contrôle TreeView mais celui ci ne convient pas à mon problème.

    Concernant l'attribut profondeur, ceci est une piste très intéressante. Cependant, je ne vois pas du tout comment calculer la profondeur des champs de ma table. Connais tu une solution, ou existe t il un algorithme standard ?

    De plus, tu m'indiques qu'il est nécessaire de le calculer en VBA. Les temps de calculs sont ils si lent que cela ? Dépendant du nombre de lignes dans ma table ? De la profondeur de mes tables de services ?

    Merci pour tes éclaircissements.

    Sat478

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    La profondeur c'est le nombre de niveau par exemple le Secrétariat des Services généraux de Direction générale aurait une profondeur de 3.

    Oui il y a un algorithme standard :

    Pour l'enregistrement courant trouver le père.
    S'il n'y a pas de père, arréter de chercher
    Dans l'enregsutrement père s'il y a un père répéter trouver le père de l'enregistrement courant.

    C'est un alogorithme récusrsif.

    Pour le temps de calcul même en utilisant des indexs et des choses comme cela cela va paraître à l'affichage. Ta liste va être 'longue' a apparaître.

    Si ta structure est petite est assez stable entrer la valeur à la main et la solution la plus simple et la plus rapide.

    Sinon je conseille de calculer, avec l'algo, cette valeur à chaque changement dans ta table de service et de garder le résultat dans la table.

    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.

Discussions similaires

  1. Alimentation d'une liste déroulante
    Par zebulon14 dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/11/2007, 14h45
  2. [AJAX] Comment rafraîchir une liste déroulante alimentée par ajax
    Par lodan dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/03/2007, 09h01
  3. [MySQL] alimenter une liste déroulante via une requête
    Par stefon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/12/2006, 13h32
  4. Réponses: 15
    Dernier message: 21/11/2006, 10h13
  5. alimenter une liste déroulante
    Par wided_instm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/09/2006, 19h29

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