SnapFAB
Messages postés61Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention 5 mars 2011
-
1 mars 2009 à 21:48
SnapFAB
Messages postés61Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention 5 mars 2011
-
2 mars 2009 à 18:56
Bonsoir tout le monde,
Je charge ma ComboBox via une base de données ACCESS avec les lignes de commandes suivantes :
Set rsCHOIX = New ADODB.Recordset
rsCHOIX.Open "select * from [ART_" & cmbRESULTAT.Text & "]", cn, 1, 2
Do Until rsCHOIX.EOF
cmbFILTRE.AddItem rsCHOIX.Fields(0)
rsCHOIX.MoveNext
Loop
rsCHOIX.Close
Set rsCHOIX = Nothing
Tout ce déroule comme prévu sauf que dans mes données il y des lignes vides ainsi que des doubles ce qui augmente d'autant ma ComboBox.
Est-il possible de ne pas Ajouter les Items vide et les Doublons dans ma ComboBox ?
Par avance je vous remercie de votre aide.
Bonne soirée.
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 1 mars 2009 à 22:02
Bonsoir,
AddItem n'est pas une propriété, mais une méthode (et ce n'est pas du tout la même chose !)
C'est ta requête elle-même qu'il convient de modifier de préférence. Cela t'évitera d'assortir la méthode AddItem de deux expression conditionnelles (une pour les vides et l'autre pour les doublons ...)
Le mieux serait d'ailleurs de ne pas utiliser du tout AddItem, mais de lier ta combobox à ton recordset (construit, lui, avec les clauses écartant vides et doublons... mais cà, c'est surtout SQL avant VB).
SnapFAB
Messages postés61Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention 5 mars 2011 1 mars 2009 à 22:11
Bonsoir jmf0,
Désolé pour avoir mis propriété au lieu méthode, je ne savais point.
En faite c'est tout à fait normal que j'ai des doublons et des vides et je ne veux pas les bloquer pour mon programme, de ce fait je ne pense pas que lier ma combobox à mon recordset résoudra le problème cité.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202171 2 mars 2009 à 16:00
Gaffe a la définition de l'instruction DISTINCT.
il faut que tous les champs ramenés soient identiques d'un tuple a l'autre, pour qu'un doublon soit detecté...
et vu que tu fais un SELECT *
je pense que certains des autres champs de ton tuple ne sont pas identiques...
exemple:
Break - Renault - Laguna
Break - Renault - Megane
Berline - Renault - Clio
Berline - Renault - Megane
Berline - Renault - Laguna
Break - Citroen - C5
Break - Peugeot - 407
Break - Peugeot - 307
...
ici, avec un " SELECT DISTINCT * " on récupèrerai plein de doublon, si on voulais remplir un combo avec le type de carrosserie.
d'ou ma remarque t'invitant à "ne rappatrier que le necessaire" et de proscrire les SELECT *
cible donc ta requete SQL en un
SELECT DISTINCT `MONchamp` FROM ...
Les signes que tu as mis sur le message du dessus s'obtiennent avec ALT GR + 7 mais je n'arrive pas à voir où les placer, à chaque coup j'ai un message d'erreur ou il me dit select distinct from non conforme. Merci pour ton aide.