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 :

Requête dans table - Tri en fonction d'un précédent choix [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Avatar de Kaera
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 185
    Points : 332
    Points
    332
    Par défaut Requête dans table - Tri en fonction d'un précédent choix
    Salut à toutes et à tous !


    J'ai deux tables : Rayon et Catégorie.

    La table RAYON contient, entre autres, les champs suivants:
    N°rayon - ResponsableRayon - AdjointRayon - Catégorie - NomProduit

    Ma table CATEGORIE se présente (plus ou moins) comme ceci:
    Catégorie - NomProduit - CodeBarre - Provenance

    Ce qui donne : (les exemples sont bidons)
    ProduitsLaitiers - Candy'Up - 123456789 - Marseille
    Boucherie - SteakHachéCharal - 987654321 - Caen
    ProduitsLaitiers - YaourtsDanone - 456781239 - Zürich
    ProduitsLaitiers - Plantafin - 321987456 - Caen
    Maraîcher - PamplemousseFloride - 894523167 - USA
    Boucherie - PouletLoué - 741852963 - Montpellier

    J'ai créé une requête Regroupement qui me permet d'avoir une liste sans doublon des Catégorie. J'utilise cette requête dans le champ Catégorie de la table RAYON, afin de faciliter la saisie.

    Je souhaite créer une autre requête, cette fois-ci me permettant de trier mes produits par catégorie.
    Ainsi, lorsque je créerai un nouvel enregistrement dans ma table RAYON, le champ Produits sera sous forme de liste déroulante m'affichant les Produits pour la catégorie que j'aurai préalablement sélectionnée.

    J'ai trouvé de nombreux tutos sur la création et l'utilisation de requêtes dans les formulaires mais là, en l'occurrence, c'est dans une table !

    Merci d'avance pour votre aide !

    Kaera*

  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
    J'ai trouvé de nombreux tutos sur la création et l'utilisation de requêtes dans les formulaires mais là, en l'occurrence, c'est dans une table !
    Pas étonnant car on ne peut pas le faire dans une table. Il faut créer un formulaire.

    Et il y a un certain nombre de points qui vont faire froncé pas mal de sourcils :-).

    1. Normalement on ne fait jamais en production des saisies directes dans les tables, on utilise un formulaire (en mode feuille de données par exemple) qui permet BEAUCOUP plus de contrôles sur la saisie (ex : empécher la suppression dans certaines circonstances).
    2. il semblerai plus logique d'avoir une table des catégories dont la structure est :
      ClefCategorie (un autonum)
      TextCategorie

      Ta solution est valide si tu ne souhaites pas limiter l'utilisateur dans sa saisie et que l'information est purement "décorative".
    3. Ensuite pour les jointures entre table on préfére généralement utiliser des clefs plutôt que des libellés.


    A+

  3. #3
    Membre averti
    Avatar de Kaera
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 185
    Points : 332
    Points
    332
    Par défaut
    Salut marot_r,

    D'abord, merci pour ta réponse.
    Ta solution est valide si tu ne souhaites pas limiter l'utilisateur dans sa saisie et que l'information est purement "décorative".
    En effet, il n'y a pas de "sécurité", l'utilisateur peut tout à fait saisir autre chose que ce qui est dans la liste. C'est surtout pour faciliter la saisie, simplifier la tâche en somme !


    Normalement on ne fait jamais en production des saisies directes dans les tables, on utilise un formulaire
    C'est ce que j'ai fait... Du moins, j'ai tenté.
    J'ai créé un formulaire ainsi qu'un sous-formulaire. C'est dans mon sous-formulaire que j'ai besoin de la requête.
    Parmi les tutos que j'ai lu, l'un proposait la structure suivante, à placer dans le champ Critère de ma requête:
    [forms]![nomDuFormulaire].[nomDuSousFormulaire].[form]![nomDeLa1ereZoneDeListe] (où la première zone de liste sert de filtre pour la deuxième)
    Mais ça ne fonctionne pas :/

  4. #4
    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
    [forms]![nomDuFormulaire].[nomDuSousFormulaire].[form]![nomDeLa1ereZoneDeListe] (où la première zone de liste sert de filtre pour la deuxième)
    Mais ça ne fonctionne pas :/
    Surprenant, c'est la méthode habituelle. Cela ne fonctionne pas comment ?
    1. La liste ne donne pas les résultats attendus ?
    2. La liste n'affiche rien ?
    3. Il y a un message d'erreur ?


    A+

  5. #5
    Membre averti
    Avatar de Kaera
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 185
    Points : 332
    Points
    332
    Par défaut
    La liste affiche bien quelque chose mais ne donne pas les résultats attendus.
    Il semblerait que ça m'affiche les produits d'une seule catégorie, et toujours la même !

    Je précise, au cas où ça pourrait servir, que ce qui me sert de sous-formulaire est en fait un formulaire créé à part.

    Merci d'avance marot_r

  6. #6
    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
    Pourrais-tu poster le SQL de la requête qui alimente la liste ?

    A+

  7. #7
    Membre averti
    Avatar de Kaera
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 185
    Points : 332
    Points
    332
    Par défaut
    Salut,

    Voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CATEGORIE.PRODUIT, CATEGORIE.CATEGORIE
    FROM CATEGORIE
    WHERE (((CATEGORIE.CATEGORIE)=[Forms]![Saisie_rayon].[SF_Pft].[form]![ListeCat]))
    ORDER BY CATEGORIE.PRODUIT;

  8. #8
    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
    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![Saisie_rayon]![SF_Pft].[form]![ListeCat]
    Autre chose, as-tu mis du code pour "rafraichir" ta liste à chaque fois que tu arrives dessus ?

    Si non, essaye cela sur l'événement "Sur réception du focus" (OnFocus) :

    Quand tu ouvres un formulaire, Access crée toutes les listes et les 'fige' dans cet état. Si tu ne fais rien elles vont restées comme elles sont au moment de l'ouverture jsuqu'à la prochaine ouverture du formulaire.

    A+

  9. #9
    Membre averti
    Avatar de Kaera
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 185
    Points : 332
    Points
    332
    Par défaut
    Salut !

    Citation Envoyé par marot_r Voir le message
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![Saisie_rayon]![SF_Pft].[form]![ListeCat]
    Ca fonctionne !
    Merci beaucoup marot_r !

    Autre chose, as-tu mis du code pour "rafraichir" ta liste à chaque fois que tu arrives dessus ?
    Si non, essaye cela sur l'événement "Sur réception du focus" (OnFocus) :
    Quand tu ouvres un formulaire, Access crée toutes les listes et les 'fige' dans cet état. Si tu ne fais rien elles vont restées comme elles sont au moment de l'ouverture jsuqu'à la prochaine ouverture du formulaire.
    Je croyais que les listes étaient mises à jour automatiquement !
    Merci du tuyau

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

Discussions similaires

  1. Architecture optimisée pour requête dans table volumineuse
    Par Bouga74 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/02/2013, 13h52
  2. [MySQL] Requête dans table à 3 colonnes
    Par razorlok dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/02/2010, 20h57
  3. Ajout Résultat Requête dans Table en VBA
    Par lito74 dans le forum Access
    Réponses: 4
    Dernier message: 24/02/2006, 15h43
  4. [SQL] Une requête dans plusieurs tables
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/12/2005, 16h23
  5. Modifier une requête dans toutes ces tables...
    Par SnickeursMan dans le forum Requêtes
    Réponses: 6
    Dernier message: 14/12/2005, 13h08

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