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

VBA Access Discussion :

Filtre sur formulaire. [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut Filtre sur formulaire.
    Bonjour,

    Dans une gestion de stock, j'ai un formulaire [FArticles] sur lequel j'ai créé un champs de recherche [Texte114] permettant de faire une recherche sur les champs [EAN]. Cela fonctionne sauf lorsque EAN est vide. J'aimerais donc connaitre la parade pour que cela fonctionne et aussi savoir si il y a un code pour ne plus filtré le formulaire pour faire une recherche en manu.
    [Choix] étant une case à cocher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.OpenForm "FArticles", , , "[TArticles]![EAN13] = Forms![FArticles]![Texte114]"
    Me.Choix = 1
    Me.Texte114 = ""
    D'avance merci,

  2. #2
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Filtre sur formulaire.
    Salut!

    Code à mettre sur un contrôle de formulaire (liste déroulante de critères, bouton...) pour appliquer un critère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    me.filter=MonFormulaire!MaListeDeroulante
    me.FilterOn=True
    (Tu peux aussi rajouter "Tous les Articles" à ta liste déroulante pour enlever le filtre)

    Code pour Enlever un filtre sur le formulaire ouvert à partir d'un bouton:

    J'espère que çà répond à ta question.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  3. #3
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Puisque le problème se pose lorsque EAN est vide, alors il vaut mieux mettre une condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Forms![FArticles]![EAN13] = "" then 
    DoCmd.OpenForm "FArticles"
    else
    DoCmd.OpenForm "FArticles", , , "[TArticles]![EAN13] = Forms![FArticles]![Texte114]"
    end if

  4. #4
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Filtre sur formulaire.
    Si je peux me permettre,

    if Forms![FArticles]![EAN13] = "" then
    DoCmd.OpenForm "FArticles"
    else
    DoCmd.OpenForm "FArticles", , , "[TArticles]![EAN13] = Forms![FArticles]![Texte114]"
    end if
    Dans le cas d'une chaîne vide j'aurais utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Nz(Forms![FArticles]![EAN13],"") = "" then 
    DoCmd.OpenForm "FArticles"
    else
    DoCmd.OpenForm "FArticles", , , "[TArticles]![EAN13] = Forms![FArticles]![Texte114]"
    end if
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  5. #5
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Merci Ric500, Zekraoui_Jakani

    je viens de tester vos deux codes et j'ai l'affichage suivant:

    Nom : Capture 2.PNG
Affichages : 139
Taille : 58,8 Ko

    Il enregistre un nouvel article qui a pour code 0.

  6. #6
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Filtre sur formulaire.
    Oups!

    Il y a un truc qui m'échappe: si tu souhaites appliquer un filtre APRES ouverture du formulaire, c'est la première réponse que je t'ai faite qui s'applique sur l'événement AfterUpdate de EAN 13.
    Si tu veux ouvrir ton formulaire avec un filtre pré-existant, le code ci-dessus est un peu bancale, puisque le formulaire n'est pas ouvert... avant son ouverture
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  7. #7
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Désolé je me suis mal exprimé.

    Mon champs de recherche[Texte114] je le renseigne via une douchette code à barres, ce n'est pas une liste déroulante.

    Sur AfterUpdate de [Texte114] je mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Texte114_AfterUpdate()
    Me.Filter = FArticles!Texte114
    Me.FilterOn = True
    End Sub
    ET j'ai un message comme quoi FArticles n'est pas définie....

  8. #8
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Filtre sur formulaire.
    re-Oups!

    Effectivement, ce serait mieux comme çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Texte114_AfterUpdate()
    Me.Filter = Forms!FArticles!Texte114
    Me.FilterOn = True
    End Sub
    ou Comme çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Texte114_AfterUpdate()
    Me.Filter = Me!Texte114
    Me.FilterOn = True
    End Sub
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  9. #9
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Désolé rien ne se passe. Est-ce que le fait que [EAN] soit invisible change grand chose?

  10. #10
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Filtre sur formulaire.
    Normalement non,

    Si je me rappelle bien de ma propre expérience avec les douchettes, tu peux clôturer ta saisie par un retour chariot ou pas. Mais dans le cas où tu saisirais un code EAN à la main, puis validation, l'événement AfterUpdate devrait se déclencher, et appliquer le filtre codé dans le sub.

    Est-ce que le champ EAN 13 comporte un propriété ControlSource? Si oui, il vaudrait mieux le doubler et faire la recherche sur un champ sans source contrôle.

    Tu peux peut-être t'inspirer de çà:
    Nom : Sans titre 15.png
Affichages : 146
Taille : 48,5 Ko
    Nom : Sans titre 16.png
Affichages : 146
Taille : 136,0 Ko
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  11. #11
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 870
    Points : 3 449
    Points
    3 449
    Par défaut
    Bonjour fab.85, Ric500,

    Je ne crois pas que l'événement "AfterUpdate" soit déclenché lors de l'injection de données extérieur au formulaire (code VBA, requête etc...). Voilà pourquoi il ne se passe rien.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  12. #12
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Filtre sur formulaire.
    Normalement une entrée douchette s'apparente à une entrée clavier.

    Selon le paramétrage de certaines douchettes tu peux ajouter un retour chariot (validation) après le scan d'un code barre, sinon, scan + Enter, çà devrait le faire...

    ++
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  13. #13
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Bonjour Robert1957,

    Avec mon premier code je pouvais filtrer le formulaire sauf quand [EAN] était vide. J'ai même essayer de remplir les champs vides par 00 mais ça plante dès que ça ne match pas entre [Texte114] et[EAN].

    Ric500, je regarde ton exemple dès demain car plus Access à la maison pour l'instant...

    Merci.

  14. #14
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Bonjour,

    En essayant comme ça, je n'ai pas de problème pour filtrer le formulaire. Le problème arrive lorsque je souhaite que Me.Choix = 1. Du coup je ne sais plus ou le placer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Texte114_AfterUpdate()
     
    DoCmd.OpenForm "FArticles", , , "[TArticles]![EAN13] = Forms![FArticles]![Texte114]"
     
    Me.Texte114 = ""
     
    If [EAN13] = 0 Then
    Me.FilterOn = False
    End If
     
     
    End Sub

  15. #15
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Voila dans ce sens ça marche, même si ce n'est pas le plus beau code qu'on ait vu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Texte114_AfterUpdate()
     
    On Error GoTo Texte114_Err
     
        DoCmd.OpenForm "FArticles", , , "[TArticles]![EAN13] = Forms![FArticles]![Texte114]"
     
        Me.Texte114 = ""
     
     
        If [EAN13] = 0 Then
        Me.FilterOn = False
    Else
        Me.Choix = 1
        End If
    Merci pour votre aide,

    Fabien.

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

Discussions similaires

  1. Filtre sur formulaire continu
    Par delcroixf dans le forum IHM
    Réponses: 5
    Dernier message: 04/02/2007, 10h22
  2. [Formulaire]Filtre sur Formulaire
    Par himan dans le forum IHM
    Réponses: 1
    Dernier message: 30/09/2006, 10h23
  3. Probleme sur filtre sur formulaire
    Par christ-94 dans le forum IHM
    Réponses: 8
    Dernier message: 09/06/2006, 11h39
  4. Réponses: 2
    Dernier message: 08/05/2006, 21h08
  5. Impression filtre sur formulaire
    Par zut94 dans le forum Access
    Réponses: 6
    Dernier message: 07/03/2006, 16h30

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