Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2011, 10h03   #1
Invité régulier
 
Homme Cédric
Étudiant
Inscription : septembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Localisation : France, Aveyron (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2011
Messages : 36
Points : 9
Points : 9
Par défaut Recherche en direct automatiquement

Bonjour à tous,

J'ai besoin de votre aide pour créer un formulaire qui permettra de rechercher dans une bdd en direct.
Je m'explique : J'ai une base de donnée PRODUIT avec comme champ : reference, designation, adresse.

Je veux donc créer un formulaire avec une première zone de saisie (Texte2) qui servira à l'utilisateur à saisir la désignation de l'objet rechercher.

En dessous une grande zone d'affichage (Liste0) qui servira, en temps réel, lettre après lettre taper par l'utilisateur, à afficher les résultat contenant les lettres taper dans la zone recherche (Texte2).

Un exemple

La personne commence et tape : "j"
La zone d'affiche affichera : joint de cuivre
joint de fer
jupe
banjo
..... etc


La personne affine ça recherche : "jo"
La zone d'affiche affichera : joint de cuivre
joint de fer
banjo
..... etc

Tout ceci sans appuyé sur aucun bouton, tout est dynamique !


Voila ce que je suis arrivé a faire mais l'utilisateur doit taper sur la touche "ENTREE" pour valider la recherche...
Code :
1
2
3
4
5
6
7
8
 
Private Sub Liste0_Enter()
 
Liste0.RowSource = "SELECT DISTINCTROW PRODUIT.reference,        PRODUIT.description, PRODUIT.adresse FROM PRODUIT WHERE (((PRODUIT.description) Like '*" & Texte2.Value & "*'));"
 
Liste0.Requery
 
End Sub
Comment faire pour que la recherche soit automatique, sans appuyé sur la touche entrée
Merci d'avance

Ps : j'ai oublié de dire je suis sous Access 97
Dewey12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 17h34   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 475
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 475
Points : 7 561
Points : 7 561
Tu peux utiliser l'événement OnChange (sur changement) de ta zone de saisie pour déclencher la mise à jour de tes données chaque fois que l'utilisateur fait une modif.

Note que si tu as beaucoup de données tu auras peut-être un problème de performance car Like est un oppérateur "lent".

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 15h38   #3
Invité régulier
 
Homme Cédric
Étudiant
Inscription : septembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Localisation : France, Aveyron (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2011
Messages : 36
Points : 9
Points : 9
Merci pour ta réponse tout d'abord !

Je sais pas si tu l'a remarqué mais ma requete je la fais sur ma zone d'affichage !

Si je positionne celle-ci sur changement de ma zone de saisie rien ne se passe...
C'est bizare
Dewey12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 17h14   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 475
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 475
Points : 7 561
Points : 7 561
Non je n'avais pas réalisé.

Essaye ceci :

Code :
1
2
3
4
5
6
7
8
private sub MAJListe0()
  me.Liste0.RowSource = "SELECT DISTINCTROW PRODUIT.reference,        PRODUIT.description, PRODUIT.adresse FROM PRODUIT WHERE (((PRODUIT.description) Like '*" & Texte2.Value & "*'));"
  me.Liste0.Requery
end sub
 
Private Sub Liste0_OnChange()
   call MAJListe0()
end sub
Essaye aussi en désactivant la propriété AutoComplete de la liste déroulante et si cela ne marche pas il faudra sans doute faire un petit sous-formulaire qui présentera le resultat de la requète de sélection sous forme 'Feuille de données'.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h06.


 
 
 
 
Partenaires

Hébergement Web