IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Inserer une rechercheV dans une zone de texte [AC-2007]


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut Inserer une rechercheV dans une zone de texte
    Bonjour la communauté,

    je me tourne vers vous pour savoir comment on peut insérer une "rechercheV" dans un formulaire.

    J'ai créé un formulaire qui permet de retrouver chaque enregistrement en fonction de sous journal.
    Je souhaiterais mettre en place une "rechercheV" pour que quand je me place dans "Sélectionnez un nom de sous journal" dès que je tape par exemple "c" qu'il me fait ressortir dans la barre de défilement tous les intitulés comportant un "c"
    Voici une capture d'écran de mon formulaire pour mieux comprendre mon problème :
    Nom : Capture barre déroulante.JPG
Affichages : 592
Taille : 22,0 Ko

    Dans ce cas si je tape "c", je souhaite obtenir que les libellés comportant une lettre c soit Crédit consommation, Frais bancaire, Cadeaux, Grande Surface, Petit commerçant...Je vous remercie chaque personne qui m'aidera à trouver une solution.

    Bonne journée à vous.

    Bien cordialement.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Les listes déroulantes ne fonctionnent pas "naturellement" comme cela.

    il faut faire un peu de VBA et définir la source.

    Pour la source, il faut quelque chose qui ressemble à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select [TaSource].* from [TaSource] where [TaTable].[TonChamp] like "*" & [Forms]![TonFormp]![TaListe].[Text] & "*"
    Cela va te donner la liste des données qui contienne la chaîne tapée.

    Pour le code, il faut mettre dans la procédure événementielle associée à l'événement SurChangement :

    Cela va forcer access à mettre à jour ta liste à chque fois que tu tapes une lettre.

    A+

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Bonjour marrot_r,

    je te remercie pour ta réponse.

    Il faut savoir que je suis un débutant, et j'essaie seulement de comprendre le VBA.

    Donc le code, il faut le rentrer dans un module nouveau qui correspond au nom de la source ou il faut seulement intégrer le code dans la ligne "source contrôle" de la zone de texte du formulaire ?

    Désolé de te déranger pour ces questions stupides.

    Encore merci pour ton aide.

    Bien cordialement,
    Benjamin.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Nous sommes dans un forum Access et rechercheV c'est Excel!

    Parle t'on bien Access? Si oui ta liste est elle lier à une requête? Si oui utilises la propriété Filter!

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonjour,
    Nous sommes dans un forum Access et rechercheV c'est Excel!

    Parle t'on bien Access? Si oui ta liste est elle lier à une requête? Si oui utilises la propriété Filter!
    Bonjour,

    oui on parle bien d'Access, je suis avec vous, je n'ai pas utilisé le mot correct pour décrire ma demande mais le but c'est quand je tape dans ma zone de texte des lettres seuls les intitulés ayant cette lettre apparaissent comme indiqué dans mon exemple.

    Je crois que le code de marot_r est correct, il me faut simplement savoir comment le placé car je recherchais un code via "*".

    Merci pour votre aide.

  6. #6
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut
    Bonjour.

    Dans la feuille de propriete de la liste deroulante, onglet "Evenement", Sur la ligne "Sur Entrée" (je pense que c'est le mieux mais il y a peut etre une meilleur choix), on selectionne [Procédure événementielle] et on clique sur les "...".

    Selon moi, on peut faire la procedure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Requete As String
    Requete = "select [nommonchamp] from [matable] where [nommonchamp] like '*" & Me!Nomlistedechoix & "*'"
        Me!Nomlistedechoix.RowSource = Requete
    Comme les listes deroulantes affichent de suite le 1er texte commencant par la lettre saisie, il faut supprimer tout ce qui vient apres la lettre saisie puis "TAB" pour sortir du champ pour que le champ soit mis a jour. En selectionnant la fleche dans le champ, on a effectivement les mots contenant la lettre saisie.

    Cdlt
    Jean

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par jj4822 Voir le message
    Bonjour.

    Dans la feuille de propriete de la liste deroulante, onglet "Evenement", Sur la ligne "Sur Entrée" (je pense que c'est le mieux mais il y a peut etre une meilleur choix), on selectionne [Procédure événementielle] et on clique sur les "...".

    Selon moi, on peut faire la procedure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Requete As String
    Requete = "select [nommonchamp] from [matable] where [nommonchamp] like '*" & Me!Nomlistedechoix & "*'"
        Me!Nomlistedechoix.RowSource = Requete
    Comme les listes deroulantes affichent de suite le 1er texte commencant par la lettre saisie, il faut supprimer tout ce qui vient apres la lettre saisie puis "TAB" pour sortir du champ pour que le champ soit mis a jour. En selectionnant la fleche dans le champ, on a effectivement les mots contenant la lettre saisie.

    Cdlt
    Jean
    Bonsoir Jean,

    merci pour ton aide.

    Alors j'ai implanté ta formule comme indiqué sauf que je n'ai plus de texte dans ma liste déroulante.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Requete As String
    Requete = "select [ListeNomSsJrnl] from [SousJournal] where [ListeNomSsJrnl] like '*" & Me!ListeNomSsJrnl & "*'"
        Me!ListeNomSsJrnl.RowSource = Requete
    Pour information :
    ListeNomSsJrnl = Nom de la liste déroulante
    SousJournal = Nom de la table où on retrouve les noms des sous journaux

    Ci-joint en capture d'écran mon formulaire :
    Nom : Capture recherche.JPG
Affichages : 475
Taille : 116,9 Ko

    En espérant de ne pas avoir fait une grosse erreur.

    Bonne soirée à vous.

    Bien cordialement,
    Benjamin.

  8. #8
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut
    Bonsoir.

    Quel est le nom du champ utilise dans la table "SousJournal" pour alimenter la liste du formulaire ? Est-ce "ListeNomSsJrnl" ?


    Cdlt.
    Jean

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo