Access : saisie semi-automatique d'un champ
Résolu
Informadream
Messages postés
465
Date d'inscription
Statut
Membre
Dernière intervention
-
Maxime -
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...
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...
A voir également:
- Access : saisie semi-automatique d'un champ
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Exemple base de données Access de gestion ✓ - Forum Logiciels
- Quick acces ✓ - Forum Windows
6 réponses
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.
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.
Gaunts
Messages postés
1125
Date d'inscription
Statut
Membre
Dernière intervention
116
Effectivement je n'avais pas pensé à la liste déroulante, ça fonctionne aussi sous 2007
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
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
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!
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!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question