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 :

Filtrage d'une requête selon +/- plusieurs champs [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien de laboratoire
    Inscrit en
    Août 2013
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien de laboratoire
    Secteur : Santé

    Informations forums :
    Inscription : Août 2013
    Messages : 172
    Par défaut Filtrage d'une requête selon +/- plusieurs champs
    Salut tout le monde

    Je développe une base de données de gestion de stock sous Access et je rencontre un problème avec une requête que j'utilise comme source de données pour un sous formulaire

    Dans mon formulaire d'inventaire, j'ai une liste déroulante nommée NumFournisseurInv (fournisseurs) et une autre nommée NumLieuInv (lieu de stockage)

    J'aimerai que lorsque aucun fournisseur ni lieu de stockage n'est sélectionné le sous formulaire m'affiche tous les produits en stock

    MAIS si un fournisseurs ET/OU un lieu de stockage est sélectionné alors le sous formulaire m'affiche les produits correspondants aux choix faits précédemment.

    Dans ma requête source, j'ai mis un critère pour NumFournisseur et NumLieu qui doivent être égaux aux champs correspondants dans le formulaire mais rien ne s'affiche SAUF si je sélectionne un fournisseur ET un lieu de stockage.

    Pourriez-vous m'aider SVP

    Merci beaucoup

  2. #2
    Membre chevronné
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Par défaut
    Salut,
    As tu essayé de faire deux requêtes: une avec les fournisseurs avec en critère ta zone de liste, puis une autre requête avec les lieux avec en critère ta zone de liste lieu pour enfin faire une requête UNION de ces deux requêtes ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien de laboratoire
    Inscrit en
    Août 2013
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien de laboratoire
    Secteur : Santé

    Informations forums :
    Inscription : Août 2013
    Messages : 172
    Par défaut
    Je peux peut-être faire une requête union entre 3 requêtes 1 fournisseurs 1 lieu de stockage et 1 sans critère
    Qu'en penses-tu ???

  4. #4
    Membre chevronné
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Par défaut
    Non tu ne pourras pas car dans tous les cas ça t'affichera tout tes produits, peut importe les données dans la liste.. Ce que tu peux faire, c'est créer une seule requête puis d'utiliser les lignes suivantes dans les critères qui vont revenir à des conditions: critère 1 OU critère 2.
    Par exemple ta première ligne des critères tu va mettre un critère sur le fournisseur, la seconde ligne un critère sur lieu. Pour la condition sur les deux listes vides, personnellement je mettrais un code vba qui changerai la source de ton formulaire par une requête qui afficherait toutes tes données sans critères.

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien de laboratoire
    Inscrit en
    Août 2013
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien de laboratoire
    Secteur : Santé

    Informations forums :
    Inscription : Août 2013
    Messages : 172
    Par défaut
    C'est à dire???
    Je ne sais pas comment on peut faire pour changer le code source

  6. #6
    Membre chevronné
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Par défaut
    Disons que ta requête avec critère fournisseur ou lieu s'appelle requête1 et que requête2 est une requête sans critères pour t'afficher l'ensemble de tes produits.

    Dans ton formulaire, tu crée un bouton à côté de tes listes qui te servira à rafraîchir tes données et lancer du code, avec l'image d'une loupe par exemple.

    Sur Clic de ce bouton, le code va tester si les zones de liste sont vident ou pas et changer la source.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Not IsNull(Me!ZoneListe1) or Not IsNull(Me!ZoneListe2) then
    Forms![NomFormulaire]![NomSousFormulaire].Form.RecordSource = "Requête1"
    Else
    Forms![NomFormulaire]![NomSousFormulaire].Form.RecordSource = "Requête2"
    End if
    Forms![NomFormulaire]![NomSousFormulaire].Form.Requery
    Si le résultat ne te convient pas il faut alors que tu fasse quatre requêtes, une avec critère sur fournisseur, une avec critère sur lieu, une avec critère sur fournisseur ET lieu, une sans critères.

    Ensuite sur le bouton dans ton formulaire tu ajuste le code pour changer la source suivant la valeur Null ou Not Null de tes deux zones de listes.

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

Discussions similaires

  1. [MySQL] Filtrer des éléments d'une liste selon plusieures valeurs d'un champ d'une table bdd
    Par amdawb dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 08/02/2015, 15h59
  2. Réponses: 1
    Dernier message: 28/03/2014, 23h42
  3. Comment créer une sous requête sur plusieurs champs?
    Par Anonymouse dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 10/06/2008, 09h13
  4. Réponses: 2
    Dernier message: 04/03/2008, 10h10
  5. Choisir un champ dans une requête selon un paramètre extérieur
    Par dut-dut dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/02/2008, 13h37

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