Access : saisie semi-automatique d'un champ [Résolu/Fermé]

Signaler
Messages postés
452
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
2 octobre 2019
-
 Maxime -
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...
Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
108
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.
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62978 internautes nous ont dit merci ce mois-ci

Gaunts
Messages postés
1146
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
110
Effectivement je n'avais pas pensé à la liste déroulante, ça fonctionne aussi sous 2007
Messages postés
1146
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
110
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
Messages postés
452
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
2 octobre 2019
28
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!
Pas si le champ en question est indexé...
Messages postés
1146
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
110
Bonjour,

Je ne pense pas, ou alors je ne connais pas..
Messages postés
452
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
2 octobre 2019
28
OK, merci pour ton aide en tout cas !
Quelqu'un connaitrait-il un autre moyen ?
Messages postés
452
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
2 octobre 2019
28
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.
Jean_Jacques
Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
108
Bonne journée
Jean-Jacques