Rickymnt
Messages postés3Date d'inscriptionlundi 3 décembre 2007StatutMembreDernière intervention 4 décembre 2007
-
3 déc. 2007 à 17:40
Rickymnt
Messages postés3Date d'inscriptionlundi 3 décembre 2007StatutMembreDernière intervention 4 décembre 2007
-
4 déc. 2007 à 15:18
Bonjour,
Je suis actuellement devant un problème que je n'arrive pas à resoudre (oui ça arrive...), j'explique.
J'ai une table access avec plusieures colonnes (9 pour être exact) et je veux lier chaque colonne à une combobox, mais en sorte que les valeurs de chaque combobox dépendent aussi de la valeur de la combobox précédente.
J'ai donc dans ma table:
Secteur | type deter | deter | etc, sachant que pour un élement secteuril y à plusieurs type deter et pour chaque type deter plusieurs deter et ainsi succéssivement.
Je dois avoir plusieures comboboxes la premiére pour sélectionner les différents Secteur, la deuxiéme qui affiche les type deter correspondants au secteur sélectionné sur le premiére et ainsi succéssivement.
J'ai principalement un problème la première combobox affiche tout ce qui se trouve dans ma table (309 lignes), mais je n'ai que trois types de secteur ( M , R , S, répétés plusieures fois), y-a-t'il moyen de n'afficher qu'une fois chaque valeur (soit 3 lignes au lieu de répeter exactement la table avec les 309 lignes)?
cs_Maroxye
Messages postés177Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention16 octobre 2012 3 déc. 2007 à 20:53
Allo!
Voilà l'explication :
Si tu ce genre de données dans ta liste(exemple car je ne connais pas tes données) :
Secteur | type deter | deter M | 1 | bleu
R | 2 | rouge
S | 1 | bleu
M | 3 | jaune
Tu ne pourras jamais n'afficher que les 3 secteurs M, R, S et ce à moins de n'afficher que la colonne secteur (unique). Dans le cas ci-haut, il va afficher 2 fois le secteur M:
1 fois pour le type deter 1
1 fois pour le type deter 3
Tu dois donc enlever la colonne type deter de ta combo box parce que celle-ci n'est pas unique et remplir le combo box avec une requête regroupement sur le secteur.
Rickymnt
Messages postés3Date d'inscriptionlundi 3 décembre 2007StatutMembreDernière intervention 4 décembre 2007 4 déc. 2007 à 11:16
Bonjour,
Merci pour la réponse, mais pour l'instant impossible de changer la requête pour utiliser uniquement la colonne Secteur, j'ai un message qui me dit que le résultat de la requête serait différent, impossible aussi de ne le lier qu'à une colonne, il donne une erreur pcq je les valeurs dans la colonne ne sont pas uniques....
En plus j'avait presque terminé ce f... programme, mais un changement de derniére minute...
Comme pas tous les utilisateurs de l'application n'auront pas accés à la BDD ou se trouve la table de départ, j'avais tout simplement créé une routine pour construire un fichier texte (en lecture seule, bien entendu) avec les données dont j'avais besoin. Cette routine tournait chaque fois qu'on démarrait la BDD (elle est démarrée au moins une fois par jour) et j'étais sur d'avoir toujours les bonnes données (la table en question n'était changée que très rarement).
Mais voilà que maintenant la BDD ne sera plus utilisée (donc le fichier texte ne sera plus mis à jour...), j'ai du récupérer la table qu'il me fallait et je dois donc maintenant aller chercher les infos directement dans la table (qui sera mise à jour quand il faudra).
Je retourne donc griller le restant des neurones et perdre quelques cheveux de plus par la même occasion.
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 4 déc. 2007 à 13:16
Bonjour
En SQL je proposerais un truc du genre :
Secteur : select distinct Secteur form MaTable
type deter : select distinct Type_Deter form MaTable WHERE Secteur= 'Valeur'
deter : select distinct deter form MaTable WHERE Secteur ='Valeur' AND Type_Deter='Valeur2'
Mais je ne sais pas si ça va fonctionner.
Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
Rickymnt
Messages postés3Date d'inscriptionlundi 3 décembre 2007StatutMembreDernière intervention 4 décembre 2007 4 déc. 2007 à 15:18
Eureka (ou presque...)
D'abbord merci pour vos réponses, mais j'ai bien peur de ne pas les utiliser.
J'ai en fait décidé de faire plus simple (vu tout le dévéloppement que j'avait déjà pour le reste du programme, et d'autre part mon innexpérience aussi bien dans .net que dans la manipulation de BDD dans VB), je garde chaque colone de ma BDD (Secteur , type deter , etc) dans un tableau (qui à le même nom que la colone) avec une seule dimension (le nombre de lignes de ma BDD), et à partir de la j'ai presque les mêmes conditions qu'avant, donc je n'ai plus qu'à faire quelques modifications pour l'adaptation.
Je sais que ça aurait été plus "propre" de lier directement mes comboboxes à la BDD, mais vu la complexité de la tache j'ai abandonné.