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

IHM Discussion :

Problème de mise à jour requete de sélection [AC-2013]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Ingénieur validation
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Problème de mise à jour requete de sélection
    Bonjour,
    Je travaille sur un formulaire dans lequel j'ai inséré deux contrôles "Zone de liste déroulante"

    Le premier récupère les valeurs proposées dans la liste dans une table,
    Le second récupère des valeurs dans une requête en fonction de la valeur saisie dans la première zone.

    Mon problème est que lorsque je change la valeur de la zone 1, la requête n'est pas mise à jour automatiquement et donc la valeur de la zone 2 n'est plus en accord avec la zone 1.
    En appuyant sur le bouton Actualiser tout ça fonctionne mais comment faire pour que ça soit automatique?

    Je vous joins mon projet pour que vous compreniez mieux le soucis (enfin j'aimerais bien mais apparemment le .mbd et .accdb ne sont pas des fichiers autorisées dans le chargment )

    Merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Il faut que tu mettes à jour par du code les valeurs de ta liste2 après la mise à jour des valeurs de la liste1.
    Par exemple mettre sur l'évènement Après mise à jour de la zone de liste 1, le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub zdl1_AfterUpdate()
    Me.zdl2.Requery
    End Sub
    Pour poster ta base, il faut la compacter et la zipper ou compresser.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Ingénieur validation
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut ça fonctionne :)
    Merci beaucoup de la réponse, c'est exactement ce que je cherchais et ça fonctionne très bien

    J'en profite pour une deuxième question

    Après avoir fait un premier choix dans la zone 1 (dans une table) et fait un deuxième choix dans la zone 2 (dans une requete) je n'arrive pas à mettre à jour la requete avec le choix que j'ai fait dans la zone 2

    J'ai l'impression de le faire tourner en rond...

    Cette fois je mets la base en pj

    Dans le F_Analyse les champs Catégorie et Paramètres correspondent aux zones 1 et 2.
    J'ai mis dans Catégorie les données issues de la base Catégories et dans Paramètres les données issues de la requête R_Analyse

    Dans R_Analyse j'ai mis un filtre dans le champs Catégorie :
    [Formulaires]![F_Analyse]![filtre_Categorie]

    Je souhaitais ajouter dans R_Analyse le filtre
    Formulaires]![F_Analyse]![filtre_Parametres]
    Et c'est là que ça coince.
    J'ai essayé de faire une seconde requête mais ça ne fonctionne pas non plus.

    Merci de votre aide
    Exemple_BD_Graph.zip

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Qu'est-ce que tu veux faire exactement ?
    Ton formulaire est indépendant : non basé sur une table ou une requête => Donc tu ne pourras rien mettre à jour dans ton formulaire.
    Ce que tu fais avec tes 2 zones de liste permet de "présenter" des valeurs de la liste 2 selon les valeurs de la liste 1. Mais pour que la valeur choisie dans la liste 2 soit enregistrée quelque part, il faut définir sa propriété "Source contrôle". Maintenant où veux-tu que cela se mette ?

    Explique mieux ce que tu veux faire ! (à part la mise en place de 2 zones de listes dépendantes)

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Ingénieur validation
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Re bonjour et merci de l'intéret que tu portes à m'aider.

    Le but de la manip est d'afficher un graphique de statistiques
    J'ai deux tables, une avec des produits et leurs performances/paramètres
    Une avec les catégories de produits

    Je veux afficher un graphique avec une sélection par catégorie puis par paramètre.

    C'est la première fois que j'utilise Access donc désolée si j'utilise les mauvais termes ou que je fais des mauvaises manipulations

    J'ai fait un premier choix sur les catégories qui restreint la sélection dans la requête R_Analyse
    Je récupère dans cette requête les différentes valeurs à proposer dans le choix n°2 des paramètres

    C'est là que je bloque pour mettre à jour à nouveau la requête avec le choix des paramètres

    Ensuite j'ai inséré un graphique pour afficher les statistiques mais là encore je galère car lorsque je modifie le choix n°1 l'affichage du graphique change...

    Exemple_BD_Graph_2.zip

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    C'est plus clair et ne nous emmêlons pas les pinceaux.
    1- Tu as 2 tables :
    - Catégories avec pour champs : N°- Categorie - Produits
    - PERFORMANCES avec pour champs : N° - Produits - Parametres - Perf - Date.
    2- Tu as 1 Requête R_Analyse avec les champs Categories - Perf - Date - Parametre avec laquelle tu veux construire un graphique des performances dans le temps mais en filtrant par rapport aux catégories et paramètres.
    Ok jusque là je pense.

    Déjà, il faut lier tes 2 tables dès la mise en place de ta structure pour que ça ne parte pas dans tous les sens. J'ai eu du mal à comprendre que les 2 tables étaient liées par produits. Il faut aller faire tout cela dans la fenêtre Relations (Bouton Outils base de données).

    Ensuite, tu ne peux pas baser ta deuxième zone de liste sur la requête dont tu utilises comme critère de filtre la même zone de liste (c'est vraiment le serpent qui se mord la queue !).
    Comme tu veux utiliser ta Requête comme source de ton graphique (donc du formulaire) il faut donc utiliser autre chose comme source de ta zone de liste. Au lieu de la requête R_Analyse, re-utilisons les 2 tables. Avec le même filtre sur le champ Categorie, cela marche parce que c'est une zone de liste indépendante. J'ai créé un deuxième formulaire F_analyse_Bis.

    Et ça doit marcher ! (le résultat en pièce jointe).

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Ingénieur validation
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    ça fonctionne très bien merci beaucoup

    j'ai essayé de le transposer dans ma base réelle et cela fonctionne presque, j'ai juste une erreur que je n'arrive pas à résoudre...

    si j'utilise la valeur suivante pour mon filtrage de paramètre
    SELECT T_PROD_E.TYPEESSAI, T_PRODUITS.CALIBRE_STAT FROM T_PRODUITS INNER JOIN T_PROD_E ON T_PRODUITS.DESIGN = T_PROD_E.DESIGN WHERE T_PRODUITS.CALIBRE_STAT=[Formulaires]![F_ANALYSE_FIABILITE]![Filtre_Type_Produit];


    ça fonctionne mais je souhaitais grouper les valeurs pour afficher une seule fois chaque occurence, j'ajoute donc GROUP BY T_PROD_E.TYPEESSAI à la fin

    Et là j'ai l'erreur suivante :
    Désolé... Votre requête n'inclut pas l'expression "CALIBRE_STAT" spécifiée en tant que partie d'une fonction d'agrégation


    j'ai essayé d'utiliser le WHERE au lieu du HAVING car j'ai d'autres paramètres à afficher et cela me semblait plus facile de concaténer les conditions dans le WHERE mais j'ai peut être loupé une subtilité...

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Quand tu utilises un fonction d'agrégat dans une requête (GROUP BY ou les SUM at autres ...), il faut que tous les champs de ta requête participent ou soient un résultat d'un fonction d'agrégat. Donc tu devrais avoir :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T_PROD_E.TYPEESSAI, T_PRODUITS.CALIBRE_STAT FROM T_PRODUITS INNER JOIN T_PROD_E ON T_PRODUITS.DESIGN = T_PROD_E.DESIGN WHERE T_PRODUITS.CALIBRE_STAT=[Formulaires]![F_ANALYSE_FIABILITE]![Filtre_Type_Produit] GROUP BY T_PROD_E.TYPEESSAI, T_PRODUITS.CALIBRE_STAT;

    Nota : Mets tes codes entre balises pour que cela soient plus lisible. Tu les sélectionnes et tu appuies sur le bouton # en haut.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Ingénieur validation
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Super merci, ça fonctionne

    Du coup pour mettre deux expressions dans le WHERE j'arrive pas à mes fins
    J'ai essayé aussi l'option HAVING mais j'arrive pas à mettre deux expressions non plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT T_PROD_E.COURANT, T_PROD_E.TYPEESSAI, T_PRODUITS.CALIBRE_STAT FROM T_PRODUITS INNER JOIN T_PROD_E ON T_PRODUITS.DESIGN = T_PROD_E.DESIGN WHERE (T_PRODUITS.CALIBRE_STAT=[Formulaires]![F_ANALYSE_FIABILITE]![Filtre_Type_Produit] ET (T_PROD_E.TYPEESSAI=[Formulaires]![F_ANALYSE_FIABILITE]![Filtre_Type_Essai]) GROUP BY T_PROD_E.COURANT, T_PROD_E.TYPEESSAI, T_PRODUITS.CALIBRE_STAT;

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    En étant dans du code SQL, il faudrait peut-être modifier le "ET" par "AND" pour la concaténation de 2 conditions ?

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Ingénieur validation
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Effectivement ça marche mieux comme ça

    Merci beaucoup de ton aide je suis arrivée à peu près à ce que je souhaitais faire, c'est chouette d'aider les gens comme ça merci

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

Discussions similaires

  1. Problème de mise à jour de requete
    Par nellido dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 16/01/2009, 14h21
  2. Problème de mise à jour de données avec IBClientDataset
    Par Papino dans le forum Bases de données
    Réponses: 6
    Dernier message: 26/09/2005, 14h04
  3. [2000 Server] Problème de mise à jour windowsupdate !!
    Par rohstev dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 24/08/2005, 15h03
  4. Problème de mise à jour de base de données
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 11h38
  5. problème de mise à jour de BD
    Par tidiane dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/03/2004, 15h32

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