Saisie semi-automatique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 896 fois - Téléchargée 36 fois

Contenu du snippet

Ce code permet de proposer à l'utilisateur une saisie semi-automatique, un peu comme la barre d'adresse d'Internet Explorer.
Pour cela,le code va voir dans une base de données les enregistrements commençant par ce qui a été saisie par l'utilisateur et corrige ce qui est affiché au fur et à mesure de la saisie.
testez-le, je pense que ça vous plaiera :-)
On peut modifier le code et utiliser la méthode find pour avoir un code plus propre et plus rapide, je l'ai mis comme ça pour que tout le monde comprenne le principe :-)

Source / Exemple :


'A mettre dans l'événement keyup d'un textbox
(ici lblnomclient)

Dim ctext As String
Dim start As Integer
On Error Resume Next
If KeyCode >= 65 And KeyCode <= 122 Then
    start = LblNomClient.SelStart
    RcClients.MoveFirst
    Do While RcClients.EOF <> True
    If Left((RcClients!nom), start) = LblNomClient.text Then
        LblNomClient.text = RcClients!nom
        LblNomClient.SelStart = start
        LblNomClient.SelLength = Len(LblNomClient.text)
        TxtClient.text = RcClients!codeclient
        Exit Sub
    Else
        RcClients.MoveNext

    End If

    Loop
End If

A voir également

Ajouter un commentaire

Commentaires

ICIoBRa
Messages postés
368
Date d'inscription
dimanche 24 juin 2001
Statut
Membre
Dernière intervention
7 décembre 2015
-
Jé dja vu 1 code komme ça sur le site c'est vrément très pratique.
10/10
cs_EBArtSoft
Messages postés
4531
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
4 -
Bonjour,

C'est vrai que ce genre de code est assez pratique et tu innove sur l'utilisation d'un recordset mais il aurais été tres pratique egalement
de continuer la saisie apres le premier enregistrement je veus dire par exemple tapez plusieurs adresse email a la suite separé par des virgules ....

de plus au lieu d'ouvrir tout la table tu peut n'ouvrir qu'une requete
genre :

openrecordset("SELECT * FROM MaTable WHERE NomClient Like '" & nom & "';")

et afficher une liste dans une listbox en plus de la saisie

enfin bref c'etait juste pour commenter un peu ta source ;-D

b@nne prog
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
30 -
une remarque toute bête...
On ecrit pas : Do While RcClients.EOF <> True
mais : Do While Not RcClients.EOF
car RcClients.EOF est déjà un boolean, c'est comme faire if True=True !!!

Séb
cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
59 -
Bien pensé.
Juste un truc aussi :
Au lieu de faire le "Exit Sub" après avoir trouvé le bon nom, utilise plutôt "Exit Do"
Woulouf
Messages postés
8
Date d'inscription
samedi 2 juin 2012
Statut
Membre
Dernière intervention
16 mai 2003
-
A koi correspondent "nom" et "code client" (ki suivent un ! dexclamation, dailleurs a koi sert le point dexclamation ?)
Moi je remplace Rclient par un data2.recordset (apres avoir fait un select biensur) , c bien ca ?

Merci @+ Woulouf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.