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

Requêtes et SQL. Discussion :

Filtrer une ZDL en fonction de la valeur d'un champ de formulaire [AC-2000]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut Filtrer une ZDL en fonction de la valeur d'un champ de formulaire
    Bonjour.

    Dans un formulaire, je sélectionne un fournisseur en vue d'une commande.
    Dans le sous-formulaire de facturation, je sélectionne un article dans une liste, qui contient en rappel le code du fournisseur. Comme il n'y a aucun "garde-fous", je peux sélectionner un produit qui n'est pas fourni par le fournisseur et malgré le rappel, il y a toujours un risque d'erreur.

    J'essaie donc de modifier la requête de la zone de liste pour que n'apparaissent que les articles disponibles chez le fournisseur sélectionné dans le formulaire principal. Voici cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [produits].[pr_id], [produits].[fo_id], [produits].[ca_id], [produits].[pr_produit], [produits].[pr_conditionnement], [produits].[pr_puht_ac], [produits].[pr_tva_t] FROM produits WHERE ((([produits].[fo_id])=[forms]![commandes]![fo_id])) ORDER BY [produits].[fo_id];
    Problème : un filtrage s'effectue bien mais il ne tient compte systématiquement que du fournisseur défini dans la commande N° 1, quel que soit le fournisseur sélectionné pour une nouvelle commande ou même une commande déjà existante.

    Merci du coup de pouce...

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour,

    Dans l'événement après MàJ du champ "Fournisseur" tu dois provoquer le "requery" de ta zone de liste. Cela va la rafraîchir en tenant compte de la nouvelle valeur de "Fournisseur"

  3. #3
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut
    En insérant ceci après mise à jour du contrôle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!commandes!commandes_sub.Requery
    J'ai l'erreur d'exécution 2118 qui s'affiche.

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    ta syntaxe n'est pas bonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.LeNomDuSousFormulaire!LeNomDeLaZdl.Requery

  5. #5
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut
    Ca ne fonctionne pas. En navigant d'une commande à l'autre, ce sont toujours les articles correspondant à la N° qui s'affichent et après MAJ, message d'erreur :

    Membre de méthode ou de données introuvable

    Et je suis perplexe sur un point : comme c'est sur le déroulement de la zone de liste que je veux que le filtrage soit effectif, la procédure ne serait pas plutôt à insérer avant MAJ ?
    Bon, pour le moment, dans un cas comme dans l'autre, même message d'erreur avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.commandes_sub!pr_id.Requery

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    A voir
    Me.commandes_sub!pr_id.Requery
    J'ai le sentiment qu'on ne se comprend pas
    1° comment s'appelle le sous-formulaire dans ton formulaire principal ?
    je crois savoir : "commandes_sub" OK ?

    2° dans le sous-formulaire, comment s'appelle la zdl qui contient la requête en question.
    "pr_id" ?

  7. #7
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 366
    Points : 97
    Points
    97
    Par défaut
    Ok, ça fonctionne ; je n'avais pas bien saisi le mode opératoire. Merci.

    Par contre, il reste un problème. A supposer que j'aie oublié de saisir un article dans une commande et que je revienne dessus. Il faut que je resélectionne le fournisseur avant de sélectionner la ZDL dans le sous-formulaire pour que la liste des articles disponibles chez lui soir rafraichie.
    Donc, cette procédure de rafraichissement, il n'y aurait pas moyen de la mettre ailleurs dans le formulaire pour résoudre ce problème ?

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    tu as dit limiter la liste à
    =[forms]![commandes]![fo_id]

    Ta liste sera donc tjrs limitée à ce que contient [commandes]![fo_id].

    Si, dans certaines circonstances, tu veux changer la sélection, tu peux le faire en modifiant le contenu de la propriété "RowSource" de la zdl.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/04/2015, 18h14
  2. Réponses: 4
    Dernier message: 19/04/2010, 13h41
  3. Réponses: 2
    Dernier message: 30/08/2009, 20h42
  4. Réponses: 4
    Dernier message: 04/08/2009, 13h12
  5. afficher une image en fonction de la valeur d un champ
    Par zahiton dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2006, 17h22

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