begin process at 2012 02 16 03:17:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Remplissage d'une combo box au fur et à mesure d'une saisie de texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Remplissage d'une combo box au fur et à mesure d'une saisie de texte

mardi 8 janvier 2002 à 09:15:19 | Remplissage d'une combo box au fur et à mesure d'une saisie de texte

manueg

Bonjour,

J'ai une combo box que j'initialise à partir de valeurs issues d'une BD

L'utilisateur saisie du texte dans cette combo, l'objectif est que au fur et à mesure de sa saisie
on lui complète la fin par ce qui est trouvé en base...

exemple : je recherche toto en base
Je tape "t" et s'affiche alors "tata" dans combo
je tape "t"(déjà fait) et "o" s'affiche "tonton"
je tape "t" et "o" et "t" s'affiche alors "toto"

Merci de votre aide
mardi 8 janvier 2002 à 09:38:29 | Re : Remplissage d'une combo box au fur et à mesure d'une saisie de texte

oliver68

ben si ta combo se trie toute seule (option sort ou un truc comme ça) ça doit se faire non ?



-------------------------------
Réponse au message :
-------------------------------

Bonjour,

J'ai une combo box que j'initialise à partir de valeurs issues d'une BD

L'utilisateur saisie du texte dans cette combo, l'objectif est que au fur et à mesure de sa saisie
on lui complète la fin par ce qui est trouvé en base...

exemple : je recherche toto en base
Je tape "t" et s'affiche alors "tata" dans combo
je tape "t"(déjà fait) et "o" s'affiche "tonton"
je tape "t" et "o" et "t" s'affiche alors "toto"

Merci de votre aide
mardi 8 janvier 2002 à 09:42:34 | Re : Remplissage d'une combo box au fur et à mesure d'une saisie de texte

Crazyht

Administrateur CodeS-SourceS
J'ai pas vérifier mais voila l'idée de base :



Private Sub Combo1_Change()
Dim i As Long
Dim sel As Long
Dim trouv As Boolean

For i = 0 To Combo1.ListCount - 1
sel = Len(Combo1.Text)
If (StrComp(Left$(Combo1.List(i), sel), Combo1.Text, vbTextCompare) = 0) Then
Combo1.ListIndex = i
Combo1.SelStart = sel
Combo1.SelLength = Len(Combo1.Text) - sel
Exit For
End If
Next i
End Sub


Si t'as un pb mail moi j'y regarderai

A++
Hervé
mardi 8 janvier 2002 à 09:45:55 | Re : Remplissage d'une combo box au fur et à mesure d'une saisie de texte

Crazyht

Administrateur CodeS-SourceS
Non c'est sous Access que ça le fait.

A++
Hervé
mardi 8 janvier 2002 à 10:57:48 | Re : Remplissage d'une combo box au fur et à mesure d'une saisie de texte

oliver68

Ah bon ça passe pas en VB ? Je sais qu'en VBA c'est OK. Je croyais que...
Autant pour moi alors !
@+



-------------------------------
Réponse au message :
-------------------------------

Non c'est sous Access que ça le fait.

A++
Hervé
mardi 8 janvier 2002 à 14:39:17 | Re : Remplissage d'une combo box au fur et à mesure d'une saisie de texte

manueg

Bonjour et merci

c'est exactement le résultat que j'escomptais, donc tout baigne....

encore merci

-------------------------------
Réponse au message :
-------------------------------

J'ai pas vérifier mais voila l'idée de base :



Private Sub Combo1_Change()
Dim i As Long
Dim sel As Long
Dim trouv As Boolean

For i = 0 To Combo1.ListCount - 1
sel = Len(Combo1.Text)
If (StrComp(Left$(Combo1.List(i), sel), Combo1.Text, vbTextCompare) = 0) Then
Combo1.ListIndex = i
Combo1.SelStart = sel
Combo1.SelLength = Len(Combo1.Text) - sel
Exit For
End If
Next i
End Sub


Si t'as un pb mail moi j'y regarderai

A++
Hervé
mercredi 9 janvier 2002 à 17:08:13 | Re : Remplissage d'une combo box au fur et à mesure d'une saisie de texte

asd

Salut,

J'ai résolu le problème sous VB en 2 étapes :

1/ Lorsque tu initialises ton combo avec tes données, tu rajoutes dans le tag l'information sur laquelle tu feras ta recherche. Dans l'exemple, c'est sur le nom de l'imprimante :

'=== Init du combo ===================
Dim sSqlPrinters As String
Dim CboPrinters As ComboItem
Dim lngCpt As Long

lngCpt = 1
sSqlPrinters = "SELECT * FROM PRINTERS WHERE PRINTERS.BOODELETE = 0 ORDER BY PRINTERS.NOMPRINTERS;"
Set rsPRINTERS = New ADODB.Recordset
rsPRINTERS.Open sSqlPrinters, cnx, adOpenForwardOnly, adLockReadOnly
ImgCboPrinters.ComboItems.Clear
Do While Not rsPRINTERS.EOF
Set CboPrinters = ImgCboPrinters.ComboItems.Add(, "P" & rsPRINTERS("IPRINTERS"), rsPRINTERS("NOMPRINTERS"))
ImgCboPrinters.ComboItems.Item(lngCpt).Tag = rsPRINTERS("NOMPRINTERS")
lngCpt = lngCpt + 1
rsPRINTERS.MoveNext
Loop
If rsPRINTERS.State = 1 Then rsPRINTERS.Close
'================================

2/Ensuite, sur le "KeyUp" de ton combo(important de le mettre sur le KeyUp, sinon il a toujours une lettre de retard si tu utilises le "KeyPress"), tu rajoutes le code suivant qui fait appel à une fonction(dans mon cas, c'est ce que j'ai fais car je m'en sert une dizaine de fois!) où tu passes en paramètres le texte saisi et le nom de ton form

'======================
Private Sub ImgCboPrinters_KeyUp(KeyCode As Integer, Shift As Integer)
CherchePrinters ImgCboPrinters.Text, FICHECOPIESPRINT
End Sub
'=======================

Et voici la fonction miracle :

'=======================
Public Function CherchePrinters(strCleRecherche As String, frmNomForm As Form)
Dim lngCle As Long
Dim lngCpt As Long
Dim lngNb As Long
Dim CboPrinters As ComboItem

lngCpt = 1
For Each CboPrinters In frmNomForm.ImgCboPrinters.ComboItems
lngNb = Len(strCleRecherche)
If Mid(frmNomForm.ImgCboPrinters.ComboItems.Item(lngCpt).Tag, 1, lngNb) = strCleRecherche Then
lngCle = Mid(CboPrinters.Key, 2)
Set frmNomForm.ImgCboPrinters.SelectedItem = frmNomForm.ImgCboPrinters.ComboItems("P" & lngCle)
frmNomForm.ImgCboPrinters.SelStart = lngNb
frmNomForm.ImgCboPrinters.SelLength = Len(frmNomForm.ImgCboPrinters.Text) - lngNb
Exit For
End If
lngCpt = lngCpt + 1
Next

End Function
'===================

Mail-moi si tu as besoin, ou si tu as mieux, mais en tout cas çà marche!

A+

-------------------------------
Réponse au message :
-------------------------------

Bonjour,

J'ai une combo box que j'initialise à partir de valeurs issues d'une BD

L'utilisateur saisie du texte dans cette combo, l'objectif est que au fur et à mesure de sa saisie
on lui complète la fin par ce qui est trouvé en base...

exemple : je recherche toto en base
Je tape "t" et s'affiche alors "tata" dans combo
je tape "t"(déjà fait) et "o" s'affiche "tonton"
je tape "t" et "o" et "t" s'affiche alors "toto"

Merci de votre aide
lundi 8 décembre 2003 à 16:23:41 | Re : Remplissage d'une combo box au fur et à mesure d'une saisie de texte

sperot51


moi personnelement j'ai fait plus simple
le test se fait sur les elements du combo (en 3 lignes)
si la lettre tapée n'amene pas sur un element du combobox la frappe est anulé sinon ca ecrit le 1er dispo avec selection de la fin du mot au fur et a mesure (selection de moins en moins grande) et le tout avec un simple combobox

si ca interresse qqn mailez moi


Cette discussion est classée dans : box, combo, saisie, fur, mesure


Répondre à ce message

Sujets en rapport avec ce message

combo box [ par samy56 ] salut à tousj'ai une petite questionComment peut-on faire pour que dans un combo box des que l'on saisie une lettre, il affiche le premier resultat po combo box problème d'affichage [ par Sympa74 ] Bonjour à tous, J'ai parcouru les différentes questions au sujet de ce windows form mais je n'ai rien trouvé par rapport à mon petit problème. J'ai cr Affichage au fur et à mesure de la saisie dans listbox [ par jackjac ] Bonjour,J'ai un fichier xls qui doit chercher des infos dans un autre fichier xls (base de données).Dans le premier fichier, j'ai créé une boite de di Filtrer la source d'un combo au fur et à mesure de la saisie [ par modafine ] Bonjour. J'ai une question relative aux combobox. Je souhaite ajouter la fonctionnalité suivante: Dès qu'on tape des caractères dans le champ éditable Créer une combo box avec les noms de toutes les feuilles d'un fichier excel, et copier le contenu de la feuille choisie dans une feuille de travail. [ par Dgeof ] Bonjour, je suis nouveau sur ce forum et également très débutant en VBA. J'arrive à utiliser l'enregistreur de macro, mais pas à faire l'opération don prograssebar progresse a fur et à mesure qu'un fichier se copie [ par vbnino ] Salut!-Comment faire pour que une prograssebar progresse a fur et à mesure qu'un fichier se copie?-Merci Remplir Un ProgressBar Au fur et à mesure [ par Dagry ] Je conçois un programme en DirectX pour lire des fichiers multimédia. Mais je voudrai utiliser un progressbar pour montrer l'état d'avancement du médi chargement de combo box mais avec condition [ par soussoul ] salut tout le monde j avais un prb ,je veux charger le combo box mais avec une condition jesais pas koi faire ???j ai deux table adfhérent et bénéfici combo box [ par soussoul ] salut tout le monde j avais un prb ,je veux charger le combo box mais avec une condition jesais pas koi faire ???j ai deux table adfhérent et bénéfici Macro excel question au fur à mesure que je bloque [ par geckotokai ] Bonjour à tous, j'espère être dans la bonne section.Voilà j'ai créé un algorithme pour traiter des données mais c'est assez fastidieux à faire et je s


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,323 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales