Bonjour,
J'aimerai bien un peu d'aide pour la réflexion que j'ai à fournir pour réussir à coder mon programme (ca fait un p'tit bout de temps, j'ai un peu de mal à me remettre dans le bain ) :
J'ai une base de donnée avec une seule table contenant différents champs :
Je voudrais faire un module avec des combobox qui permette de pouvoir rechercher les infos sans doublons lors de l'affichage du résultat
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 ////////////////////////////////// Recherche par reference SQLQuery1.Active:=False; if ComboBox3.Text = 'Selectionnez' then // ben rien :) else begin SQLQuery1.SQL.Clear; SQLQuery1.SQL.Text:='SELECT *FROM TableDossiers'+' WHERE ref = ' + QuotedStr(ComboBox3.Items.Strings[ComboBox3.ItemIndex]); SQLQuery1.Active:=True; SQLQuery1.First; if (SQLQuery1.RecordCount > 0) then begin While not SQLQuery1.Eof do begin ListBox1.Items.Add(SQLQuery1.FieldByName('annee').AsString); ListBox2.Items.Add(SQLQuery1.FieldByName('modele').AsString); ListBox3.Items.Add(SQLQuery1.FieldByName('langue').AsString); ListBox4.Items.Add(SQLQuery1.FieldByName('ref').AsString); ListBox5.Items.Add(SQLQuery1.FieldByName('quantite').AsString); ListBox6.Items.Add(SQLQuery1.FieldByName('NomDossiers').AsString); ListBox7.Items.Add(SQLQuery1.FieldByName('Id_Dossier').AsString); SQLQuery1.Next; end; end; SQLQuery1.Active:=False; end; /////////////////////////////////////// ////////////////////////////////// Recherche par modèle //SQLQuery1.SQL.Clear; SQLQuery1.Active:=False; if ComboBox2.Text = 'Selectionnez' then // ben rien :) else begin SQLQuery1.SQL.Clear; SQLQuery1.SQL.Text:='SELECT *FROM TableDossiers'+' WHERE modele =' + QuotedStr(ComboBox2.Items.Strings[ComboBox2.ItemIndex]); SQLQuery1.Active:=True; SQLQuery1.First; if (SQLQuery1.RecordCount > 0) then begin While not SQLQuery1.Eof do begin ListBox1.Items.Add(SQLQuery1.FieldByName('annee').AsString); ListBox2.Items.Add(SQLQuery1.FieldByName('modele').AsString); ListBox3.Items.Add(SQLQuery1.FieldByName('langue').AsString); ListBox4.Items.Add(SQLQuery1.FieldByName('ref').AsString); ListBox5.Items.Add(SQLQuery1.FieldByName('quantite').AsString); ListBox6.Items.Add(SQLQuery1.FieldByName('NomDossiers').AsString); ListBox7.Items.Add(SQLQuery1.FieldByName('Id_Dossier').AsString); SQLQuery1.Next; end; end; SQLQuery1.Active:=False; end; ///////////////////////////////////////
Ces deux bouts de code permettent de chercher dans la table les infos demandés mais si une référence et un modèle sont identiques la ligne sera affichée deux fois.
J'ai pensé récupérer les ID dans une autre ListBox et de les filtrer et ensuite de refaire une requête avec les ID "rafraîchis" pour ensuite les afficher...
Y'a t'il une autre solution ?
En vous remerciant grandement par avance
inc002
Partager