jekifvb6
Messages postés156Date d'inscriptionlundi 13 novembre 2000StatutMembreDernière intervention18 septembre 2006
-
17 janv. 2006 à 14:30
jekifvb6
Messages postés156Date d'inscriptionlundi 13 novembre 2000StatutMembreDernière intervention18 septembre 2006
-
18 janv. 2006 à 14:15
Bonjour à toutes et tous,
Voici ce que j'aimerais pouvoir réaliser: un formulaire avec deux
listes deroulantes liées à une base de données Access, l'une pour le
prenom et l'autre pour le nom, et un bouton pour valider.
En fait, imaginez une sorte de carnet d'adresse, ou l'on pourrait
choisir le nom dans une liste et le prenom puis, en validant, on
pourrait saisir les coordonnées de cette personne.
Mais j'ai de nombreux problèmes car j'essaie de gérer plusieurs cas.
1) Ce qui est assez simple, c'est quand il faut choisir à la souris
dans la liste un nom, le prenom correspondant au nom s'affiche
automatiquement dans l'autre liste.
2) Cependant, si l'on souhaite pouvoir saisir le début du nom et que la
liste affiche au fur et a mesure les noms commencant par les premieres
saisies, en temps reel! la, j'ai l'impression que VB 6 peche un peu
mais cela fonctionne, meme si c'est au ralenti!
3) Enfin, si l'on souhaite rentrer le nom de quelqu'un de nouveau ou
bien modifier un nom existant deja, il y a beaucoup d'évenements a
gerer sur la liste deroulante.
Ainsi, si je rentre "Dup", je peux avoir "Dupont" qui s'affiche.
Normal. Mais si je clique apres la lettre "u", j'aimerais pouvoir
écrire la lettre "m" et qu'il m'affiche "Dumont" mais j'ai du mal! en
fait, j'ai du mal a faire coincider la saisie automatique avec la
saisie d'un nouveau nom. J'ai essayé de mettre en place un compteur
pour savoir ou je me trouvais dans le nom mais cela n'a plus d'interet
des que je me deplace en cliquant a la souris n'importe ou dans le nom!
Bref, je ne sais pas si vous m'avez compris, mais si vous connaissez un
exemple de code tres bien fait sur la saisie automatique qui gere
pleins d'evenement, ca m'aiderait enormement que vous me l'indiquiez!
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 janv. 2006 à 18:13
Salut
En VB6 donc.
La saisie semie-automatique n'étant pas native sur les composants de VB6, tu as donc de la programmation derrière.
N'étant pas devin et ne sachant pas comment tu as fait, difficile de te répondre.
La lenteur de recherche n'est pas dûe à VB6 mais à tes lignes de code.
Il y a quelques exemples de ce genre de composant émélioré sur vbfrance.
Il te suffit donc de lui fournir le recordset contenant tous les noms de ta DB et une méthode Find doit suffire.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
jekifvb6
Messages postés156Date d'inscriptionlundi 13 novembre 2000StatutMembreDernière intervention18 septembre 2006 17 janv. 2006 à 23:37
Je te remercie pour ta réponse et effectivement, mon code ne doit pas être optimisé car cela est tres lent. J'aurais aime le mettre ici, mais il est trop grand!
Mon principal souci, c'est de réussir à gérer une fois que la saisie semi-automatique a fait son effet, la modification de mon champ. En clair, c'est mon probleme de pouvoir mettre "Dumont" au lieu de "Dupont".
En effet, si je tape "Du", j'ai "Dupont" qui s'affiche. Je n'ai tapé que "Du", donc mon curseur est apres le "u" et si je rajoute un "m", "Dumont" s'affiche, meme avec une petite lenteur. Le probleme arrive lorsque j'ai choisi dans la liste "Dupont" et que je decide de cliquer sur le nom, juste apres le "u" pour corriger et mettre un "m".
Je ne sais pas comment récupérer la position dans le mot du curseur alors que deja, j'ai mis un compteur pour les deplacements du curseur lors d'appuis sur les touches.
J'espere avoir ete clair, mais n'hesitez pas a me demander des precisions. Je vous remercie d'avance tres sincerement
jekifvb6
Messages postés156Date d'inscriptionlundi 13 novembre 2000StatutMembreDernière intervention18 septembre 2006 18 janv. 2006 à 14:15
merci pour ce code que j'ai essayé d'etayer mais le souci, c'est quand je fais deux combo (nom et prenom) et que je tape un nom puis que je passe sur l'autre combo. Car, en revenant a la souris sur le premier combo, le nom saisi precedemment se surligne et si je clique sur une lettre au milieu du nom, pour modifier le nom, des problemes de reconnaissance ont alors lieu.