cliclic1234
Messages postés19Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention 5 septembre 2005
-
1 sept. 2005 à 23:47
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 2010
-
5 sept. 2005 à 00:26
j'ai une base de donnee ou j'enregistre nom de client et numero de client et l'adresse
je fais le choix avec une combo box et j'affiche le resultat dans une list box
mais j'ai un souci en cas d'homonyme
il ne me remonte dans la list box les 2 numero de client
comment faire pour n'obtenir en cas d'homonyme que les informations numero client et adresse lie a l'enregistrement ou jai clique
voici mon code
sql "SELECT * FROM bseclient WHERE cli'" & Replace(Combo1.Text, "'", "''") & "'"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
List1.Clear
For i = 1 To rs.RecordCount
List1.AddItem (rs.Fields("numclient"))
numeroclient = (rs.Fields("numclient"))
rs.MoveNext
Next
en supprimant la boucle il ne me reprend toujours que le premier
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 2 sept. 2005 à 00:00
il ne doit pas y avoir de doublon sur un numéro servant d'identifiant.
a moins d'avoir mal compris ton problème, sinon, il n'a pas lieu d'exister !
(pas très français comme phrase çà...)
PCPT
du coups des que l'utilisateur selectionne un client, tu as direct acces à l'id de ce dernier
Debug.Print get_itemdata(NomDeTaCombo)
avec
Public Function get_itemdata(cbo As ComboBox) As Integer: get_itemdata = cbo.ItemData(cbo.ListIndex): End Function
Public Sub select_from_itemdata(cbo As ComboBox, ByVal id As Integer)
Dim i As Integer
Dim Max As Integer
Max = cbo.ListCount
For i = 0 To Max
If cbo.ItemData(i) = id Then
cbo.ListIndex = i
Exit Sub
End If
Next i
cbo.ListIndex = 0
End Sub
Comme ça tu as bien le bon Identifiant associé au bon client ...
Les données sont donc cohérentes, mais ça déplace le probleme d'homonyme
... je sais pas si ça te vas ...
Tu peux empecher les homonymes avant d'inserer en base, en vérifiant
qu'aucun client n'existe sous ce nom là... ou alors ajouter une info en
plus dans la combo: par exemple, le prénom du client ...
cliclic1234
Messages postés19Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention 5 septembre 2005 5 sept. 2005 à 00:15
Merci de votre aide
mais cela ne marche pas
j'ai deja fait l'interdiction de creer un client qui existe mais il s'agit de reimplanter une base existante
n'y as t'il pas un moyen plus simple de recuperer le numero de client lie au champ ou l'on clique
Merci encore de votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 5 sept. 2005 à 00:26
Salut cliclic1234,
Plus simple ? je trouve pas ça complexe : 3 lignes pour résoudre ton probleme ...
J'ai pas tout compris à ton dernier post : reimplanter une base existante ???
Si ta base n'as pas de doublons, et que tu veux stocker les champs dans
une combo : lors du chargement des valeurs dans la combo (nommée cbo) -
si t'as une table Clients avec idClient et NomClient :
L'utilisation de l'itemData permettant de stocker l'id de la personne,
te permettras d'économiser une requête SQl de selection (celle pour
récupérer l'id du client) ...
la fonction select_from_itemdata c'est du Bonus ... au cas où mais pas directement liée à ton probleme.
Bref, cette solution fonctionne tres bien ... maintenant, si ça ne
répond pas à ton probleme, essais de m'expliquer un peu plus
longuement, se que tu veux faire, et où ça pose problème ...