Pb de base de données...

Résolu
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005 - 30 juil. 2005 à 14:38
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005 - 30 juil. 2005 à 20:34
Salut,

Je viens de créer un soft avec une base de données, j'ai mis une listbox, pour qu'elle puisse recuperer des informations dans ma base de données, mais le probleme, c'est que je voudrai qui me mets qu'une fois le nom que j'ai rentrée et non deux fois.

Exemple :

J'ai mis dans ma base de données dans la colonne "Essai"
-Aujourd
-Demain
-Aujourd

Donc moi il affiche dans ma listbox, deux fois ajourd, et moi je veux qu'il me l'affiche une fois...

Comment faire??? Si vous comprenez pas je mettrai une photo...

Merci d'avance

Vengo

18 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
30 juil. 2005 à 20:30
Remplace

Public Sub liste()
sql = "SELECT * FROM paroles WHERE artiste ORDER BY artiste"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
Liste1.Clear
For i = 1 To rs.RecordCount
Liste1.AddItem (rs.Fields("artiste"))
rs.MoveNext
Next
nombre.Text = rs.RecordCount
rs.Close
End Sub

Par

Public Sub liste()
sql = "SELECT DISTINCT artiste FROM paroles WHERE artiste ORDER BY artiste"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
Liste1.Clear
For i = 1 To rs.RecordCount
Liste1.AddItem (rs.Fields("artiste"))
rs.MoveNext
Next
nombre.Text = rs.RecordCount
rs.Close
End Sub

Ca devrait fonctionner.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
30 juil. 2005 à 15:17
en fait, tu as des doublons possible dans ta base, et tu ne veux pas les afficher dans la ListBox, c'est çà?

si oui :
tu t'es connecté à la base, tu as 10 résultats Rs("MaColonne")

avant de faire ListBox.AddItem Rs("MaColonne"): Rs.MoveNext, tu dois compter combien tu as déjà de valeurs, et faire une boucle selon ce nombre. si de 1 à ce nombre, une des valeurs est déjà celle que tu veux ajouter, alors tu quittes la boucle et Rs.MoveNext. sinon, il n'y a pas de doublon donc .Add...

PCPT
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
30 juil. 2005 à 16:42
Salut,
Comment interroge-tu ta base de donnée ?
Si c'est avec une requête SQL :
"select distinct champ from table"

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_hassen Messages postés 338 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 novembre 2008
30 juil. 2005 à 16:46
si tu veux pas avoir de doublon

select distinct essai from ma_table

cet instruction sql tu permet de ne pas avoir de doublon

Hassen TUNISIE
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005
30 juil. 2005 à 16:47
Mon code est car je ne comprends pas trop là, lol

-----------------------------------------------------------------------------
sql = "SELECT * FROM paroles WHERE artiste='" & Liste1.Text & "' ORDER BY artiste"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
lbl_num.Caption = rs.Fields("numero")
Liste2.Clear
For i = 1 To rs.RecordCount
Liste2.AddItem (rs.Fields("chanson"))
rs.MoveNext
Next
rs.Close
---------------------------------------------------------------------------
Voila, merci de votre aide
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
30 juil. 2005 à 16:54
t'as toutes les réponses en main ;)
par contre, je vois pas l'utilité de lbl_num.Caption = rs.Fields("numero")
PCPT
0
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005
30 juil. 2005 à 16:57
oui mais meme en faisant ça, j'ai les doubles....
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
30 juil. 2005 à 17:12
Plusieurs choses :

1 - Comme dit pcpt, utilité de :
lbl_num.Caption = rs.Fields("numero")

2 -
sql = "SELECT * FROM paroles WHERE artiste='" & Liste1.Text & "' ORDER BY artiste"

le ORDER BY artiste est inutile puisque par définition tu n'en liste qu'un seul.

3 -
d'autre part, à la place de :

For i = 1 To rs.RecordCount
Liste2.AddItem (rs.Fields("chanson"))
rs.MoveNext
Next

il faudrait mieux coder :

Do while not rs.Eof
Liste2.AddItem (rs.Fields("chanson"))
rs.MoveNext
Loop

Mais on est loin de la question de départ, tes doublons se trouvent où ? Dans chanson ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005
30 juil. 2005 à 17:55
non mes doublons se trouvent dans artiste..

Si qq'un a msn, je veux bien discuter avec pour regler mon pb merci

C [mailto:vengorpmrjc@hotmail.com vengorpmrjc@hotmail.com] merci
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
30 juil. 2005 à 18:06
bonjour, je suis chanteur, j'aimerais bien être dans ta liste
très bien, tu as fais plusieurs albums?
oui, -"chanter pour le plaisir"
- "chanter pour l'argent"
très bien, alors je te met dans ma table :
Id_chanteur = 3
Nom_Chanteur = PCPT
Titre_Chanson = chanter pour le plaisir

Id_chanteur = 4
Nom_Chanteur = PCPT
Titre_Chanson = chanter pour l'argent

non non monsieur, je suis chanteur, donc pas forcément bien placé, mais on disait que dans un monde parfait, j'étais polyvalent :
tu dois faire une table avec les chanteurs :

CHANTEURS
---------------
Id_Chanteur* <- clef primaire
Nom_Chanteur

et une avec les chansons

CHANSONS
--------------
Id_Chanson* <-clef primaire
Nom_Chanson
Id_ChantePar(*) <-clef étrangère

fait déjà une bonne structure, çà t'évitera d'avoir des doublons qui n'ont pas lieux d'exister je pense...

bon courage
PCPT
0
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005
30 juil. 2005 à 18:18
Je vois ce que tu veux dire, je vais essayer ça.....

Et si tu es chanteur, je peux te mettre dans ma base si tu veux....
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
30 juil. 2005 à 18:24
Quel Manager.....
tu donnes un sens à ma vie
je vais prendre des cours de chant de ce pas
++
PCPT
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
30 juil. 2005 à 19:05
OK donc, c'est dans la requete qui remplit ta liste des artistes "Liste1" qu'il faut appliquer le "select distinct champ from table".

'champ' étant le champ où sont rangés les noms des artistes et 'table' la table se trouve ce champ.

Ensuite, ta listbox ne devrait plus contenir de doublons.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
30 juil. 2005 à 19:08
Mais, cela n'empêche pas de construire une base de données réellement relationnelle comme le stipule pcpt.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005
30 juil. 2005 à 19:19
a cause de "distinct" il ne veux pas me le compiler???
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
30 juil. 2005 à 19:50
???? montre ta requête stp.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005
30 juil. 2005 à 19:57
Je sais je te passe mon projet et tu me dis pourquoi.. Merci

http://fullmetalchemist.free.fr/Projet1.rar
0
cs_Vengo Messages postés 11 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 8 octobre 2005
30 juil. 2005 à 20:34
Merci de votre aide, c super sympa, ça marche parfaitement, merci vraiment...

Et envoyez moi vos chansons, si vous voulez, a plus tard
0