Access : saisie semi-automatique d'un champ

Résolu/Fermé
Informadream Messages postés 465 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 9 mars 2022 - 15 nov. 2010 à 10:03
 Maxime - 1 déc. 2010 à 15:04
Bonjour,


Je suis novice sous Access, j'utilise la version 2007.

Je suis en train de créer une base de donnée pour mon entreprise, qui contient plusieurs tables dont celle qui nous intéresse : CLIENT
Elle contient plusieurs champs, dont les classiques Nom et Prénom par exemple.
Elle sera remplie par l'utilisateur, avec l'intermédiaire d'un formulaire.

Je souhaiterais que lorsque l'utilisateur tape par exemple la 1ère lettre du Nom, ou les 3 1ères, le Nom du client se mette automatiquement dans la case (si bien sur il existe déjà dans la table)

Comment faire ceci svp, j'ai eu beau fouiller sur le net, apparemment ça ne serait pas possible avec Access 2007 !?

Merci pour votre aide...

6 réponses

Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
Modifié par Jean_Jacques le 17/11/2010 à 08:33
Bonjour Informadream,

Si vous utilisez une liste déroulante, vous obtiendrez la fonction que vous recherchez en utilisant cette syntaxe événementielle, dite sur focus.

Private Sub <Champ>_GotFocus()

If IsNull(Me!<Champ>) Then
Me![<Champ>].Dropdown
End If

End Sub

Cette syntaxe filtre dynamiquement les caractères saisis dans le "champ" qui recueille l'enregistrement souhaité via la liste déroulante. Ce dispositif n'entraîne
pas de ralentissement.

J'ajoute enfin que cela fonctionne sous Access 2000 chez moi. Donc à tester
sous 2007.

Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
7
Gaunts Messages postés 1125 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 18 mars 2012 116
17 nov. 2010 à 08:42
Effectivement je n'avais pas pensé à la liste déroulante, ça fonctionne aussi sous 2007
0
Gaunts Messages postés 1125 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 18 mars 2012 116
15 nov. 2010 à 14:08
Bonjour, c'est possible avec le VBA.
Il faut que chaque pression d'une touche sur le champ texte acvite une recherche dans ta table CLIENT: si un nom est trouvé et que c'est la seule solution, alors le champ se remplit.
Cependant cette méthode a un inconvénient: si ta table devient grande, lancer une recherche a chaque pression sur une touche peut devenir lent, et fera au final perdre du temps à l'utilisateur..

Cordialement
1
Informadream Messages postés 465 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 9 mars 2022 39
15 nov. 2010 à 21:09
Bonjour,

Merci pour ta réponse!
N'y a t-il aucun autre moyen qu'en VBA ?
Car comme tu le soulignes, si la table grossit, ça va devenir lent... très lent!
0
Pas si le champ en question est indexé...
0
Gaunts Messages postés 1125 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 18 mars 2012 116
16 nov. 2010 à 08:40
Bonjour,

Je ne pense pas, ou alors je ne connais pas..
0

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

Posez votre question
Informadream Messages postés 465 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 9 mars 2022 39
16 nov. 2010 à 11:50
OK, merci pour ton aide en tout cas !
Quelqu'un connaitrait-il un autre moyen ?
0
Informadream Messages postés 465 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 9 mars 2022 39
30 nov. 2010 à 10:02
Veuillez m'excuser de répondre si tard, j'ai eu quelques soucis d'accès...
Je tiens à vous remercier pour votre aide, qui m'a été précieuse.

Cordialement,
Informadream.
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
30 nov. 2010 à 10:34
Bonne journée
Jean-Jacques
0