Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2010, 17h36   #1
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 177
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 177
Points : 29
Points : 29
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 :
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 :
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
sat478 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 18h08   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 434
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 434
Points : 7 501
Points : 7 501
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 09h32   #3
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 177
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 177
Points : 29
Points : 29
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
sat478 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 18h23   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 434
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 434
Points : 7 501
Points : 7 501
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h08.


 
 
 
 
Partenaires

Hébergement Web