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

Access Discussion :

requete et multi-critere


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut requete et multi-critere
    Bonjours

    J'ai une base de donnée comprenant 2 tables : DESSIN comprenant une liste de dessin et BOM comprenant les ''enfants'' de chaque dessin. Je dois faire un formulaire (t1 dessin ) qui affiche le contenu de BOM selon le DESSIN choisis.

    Pour ce faire, je doit utiliser une selection multi-critere comprenant les 3 parties des numéro des dessins. Ils ont la structure XXXX-YYY-ZZ.


    J'aimerais garder si possible mon champs BOM/LIGNE_BOM car d'autre aplication l'utilise. si ce n'est pas possible, je peut ajouter 3 champs pour mes critère XXXX , YYY, et ZZ. J'ai toutefois copiers une partie de sont contenu dans BOM/DESSIN pour facilité mon formulaire.


    J'aimerais avoir votre aide, je ne suis pas capable

    1-de faire afficher dans mes liste déroulantes les différentes parties (XXXX, YYY, et ZZ ) pour lesquel il y a des dessins.

    2-afficher le sous-formulaire en fonction du dessin choisis ( avec les 3 critères )



    Merci de votre aide
    Fichiers attachés Fichiers attachés

  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 595
    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 595
    Points : 281 910
    Points
    281 910
    Par défaut
    Bonjour,

    Peux-tu poster un fichier zip svp.
    NB Veille à ce que la db soit en version compatible avec Access2000, sinon je ne pourrai pas t'aider.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut aide
    salut

    J'ai réusis.


    Mais j'aimerais savoir s'il est possible de faire mes requete en utilisant le champs BOM / LIGNE-BOM et DESSIN / DESSIN. J'ai copier subdiviser ( en copier ) l'info de ces champs

    Je doit garder ces champs intacte pour d'autre programme qui utilise la meme base de donnée.



    dan

    voici la version en .zip
    Fichiers attachés Fichiers attachés

  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 595
    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 595
    Points : 281 910
    Points
    281 910
    Par défaut
    Je ne comprends pas ce que tu fais.

    Dans la table dessin, je devine que
    le champ "dessin" est la concaténation de Projet-section-plan
    Pourquoi cette redondance ?

    Dans la table BOM, c'est moins clair,
    le champ Ligne_Bom est la concaténation de Projet-section-Plan et ?
    le champ Piece = Projet- ? - Plan.


    Quelles sont les données de base en réalité et comment fais-tu la liaison entre BOM et Dessin ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut explication
    Merci pour ton aide ClaudeLELOUP , voici quelque explications

    Ma base de données vas se remplir a partir d'un logiciel de dessin ( SOLIDWORK ), LA table DESSIN vas contenenir la liste des numéro de DESSIN ( clé primaire ), avec sa description. PLus tard, je vais ajouter d'autre info comme la date, le couts, le client etc.... JE NE SAIS PAS COMMENT EXTRAIRE UNE PARTIE DU TEXTE DANS LES RÉSILTATS DES REQUETES. J'ai donc créer les champs PROJET, SECTIO et PLAN pour faciliter mon formulaire avec des multi-critère.

    Le table BOM comprends les pieces contenu dans chaque dessins. Dans chaque dessin, il y a une liste de pieces qui sont identifiés avec un numéro ( 1, 2, 3, 4...) Ce numéro d'identification est la partie de droite dans LIGNE_BOM (clé primaire ) . Donc, avec seulement, LIGNE_BOM, je connait dans quel desin il est ( donc, le projet, la section et le plan ) et sont numéro d'identification. Encore une fois, JE NE SAIS PAS COMMENT EXTRAIRE UNE PARTIE DU TEXTE DANS LES RÉSILTATS DES REQUETES, donc j'ai copiée les info dans les champs DESSIN' SECTION, PLAN et PROJET pour faciliter mon formulaire avec des multi-critère.

    J'ai réusis a faire un formulaire avec muli-critere, mais je cherche a savoir comment extraire un partie du texte des résultat d'une requete. pour utiliser seulement les champs DESSIN / DESSIN et BOM / LIGNE_BOM. ( exemple faire une requete sur DESSIN / DESSIN / 5870 et obtenir 000 et 100 comme section .

    Je vais devoir utiliser ces requete pour comptabiliser des info ( exemple, combien de dessin dans 5780, ou encore, dans 5864-1*, combien de BOM/ACHAT sont = a ''O'' .


    encore une fois, merci de ton aide

    dan

  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 595
    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 595
    Points : 281 910
    Points
    281 910
    Par défaut
    Bonjour,

    Il y a trois fonctions qui peuvent de servir dans ce contexte :

    Left, Right et Mid.

    Pour les découvrir :

    ouvre une fenêtre d’exécution : <ALT> + <F11>

    saisis ceci : ? left("XXXX-YYY-ZZ",4) et <ENTER>
    en français : imprime les quatre caractères de gauche de l’expression entre les « " »

    saisis ceci : ? Right("XXXX-YYY-ZZ",2) et <ENTER>
    en français : imprime les deux caractères de droite de l’expression entre les « " »

    saisis ceci : ? Mid("XXXX-YYY-ZZ",6,3) et <ENTER>
    en français : imprime les trois caractères qui suivent le sixième caractère de l’expression entre les « " »

    Si tu places le curseur de ta souris sur le mot-clé (left…) et que tu enfonces <F1> l’aide Access s’ouvre à la bonne page. Fais ça souvent et tu apprendras vite.


    Ainsi, au lieu de torturer ta table, tu aurais pu construire une requête qui te donne chaque valeur à l’instant voulu. En voici le SQL :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT bom.LIGNE_BOM, Left([Ligne_BOM],4) AS Projet, Mid([Ligne_BOM],6,3) AS [Section], Mid([Ligne_BOM],10,2) AS Plan
    FROM bom;
    Pour voir cette requête dans l’interface graphique procède comme ceci :

    copie n’importe quelle requête ;
    affiche son sql ;
    replace son code sql par celui que je t’ai fourni plus haut ;
    repasse en mode construction.

    Tu verras probablement, selon ta version d’Access, que les fonctions ont été francisées et que la virgule est devenue point-virgule.

    Procède par analogie pour l’autre table et construit maintenant ton formulaire multicritère sur base des requêtes au lieu des tables originales.

    Attention : si tu veux garder les mêmes noms (Projet…), tu dois d’abord les supprimer dans la table sinon, il y a ambiguïté et Access lèvera une erreur.


    Reviens si ce n'est pas clair pour toi.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut aide
    Merci claude

    le code sql que tu m'a donné m'aide beaucoups.

    Il me reste a faire ma requete on ''reconstruisant'' le numero de DESSIN acvec les 3 case du formulaires.

    Je vais aussi chercher le moyen de mettre 3 possibilites de requete pour le sous-formulaire.

    explication: Au début les 3 case sont vide. L'usager choisis un projet ( ex: 5864) et tout de suite, je vais devoir afficher les info de 5864*. Par la suite, il ajoute la section ( ex:100) donc afficher les info de 5864-100*, et finalement, il choisis un plan ( ex:01) donc j'affiche 5864-100-01.

    apres avoir tester cela, je vais être bon pour faire environ 80% de mon projet.

    encore une fois, mille merci de ton aide

  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 595
    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 595
    Points : 281 910
    Points
    281 910
    Par défaut
    Peux-tu expliquer, avec des mots et sans parler d'Access, ce que tu veux faire :

    Exemple :

    - à l'origine, j'ai une table qui contient tel(s) champ(s)...
    - dans le but de...
    - je voudrais construire un formulaire pour que l'utilisateur puisse faire ceci...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut aide
    re-salut

    J'ai une table DESSIN qui est la liste des toutes les dessins que l'on fabrique
    Mes Numéro de dessin ont une structure xxxx-yyy-zz : explication le project xxxx comprends les section yyy qui eu utilise les plans zz


    J'ai une autre table BOM qui comprends les items ''listé'' dans chaque dessin
    C'est chaque items est numéroté (LIGNE_BOM) avec la structure xxxx-yyy-zz-#items


    Je veut un formulaire dans lequel sera affiché les items des plans sélectionnés par l'usage


    Pour la selection, l'usage choisis le projet, et/ou la section et/ou le plan.
    Donc, l'affichage des items est ajusté en fonction du nombre et des valeurs des critères donné par l'usage.

    merci

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 595
    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 595
    Points : 281 910
    Points
    281 910
    Par défaut
    Vois dans le fichier joint, ton exemple un peu modifié.

    Tables
    Les champs redondants Projet, Section et Plan ont disparu.
    J’ai ajouté une requête rDessins pour rendre ces champs disponibles.


    Formulaire
    Vois les noms donnés aux contrôles.
    N. B. Tu devrais lire ceci : conventions typographiques.

    Vois le code de l’événement « après mise à jour » associé aux contrôles filtreXXX : les commentaires devraient te permettre de comprendre ce qui s’y passe.
    Si problème, place le curseur de la souris sur un mot-clé et enfonce <F1> pour ouvrir l’aide à la bonne page.

    Requête rDESSIN_REQUETE
    Vois l’astuce pour trier la sélection dans l’ordre croissant des items.

    on trie sur "CEnt(Droite([ligne_bom];NbCar([Ligne_bom])-12))"
    En français :
    NbCar([Ligne_bom])-12 : le nbre de caractères du champ – 12 => donc tous ceux à la droite du dernier tiret.
    Droite([ligne_bom];NbCar([Ligne_bom])-12) On récupère les positions après la 12e position (le dernier tiret)
    CEnt(Droite([ligne_bom];NbCar([Ligne_bom])-12))
    on convertit en nombre entier => ce qui permet de trier par ordre croissant sur la valeur numérique du texte.


    Reviens si ce n'est pas clair.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut aide
    merci claude


    J'ai bien aime l'utilisation de le requete RDESSIN , très bonne idée

    Il reste une choses a faire. La requete doit fonctionner si

    1-l'usager rentre seulement le projet, alors, la requete est du type : filtreprojet-*

    2-l'usager rentre le projet et section, alors, la requete est du type : filtreprojet-filtresection-*

    3- l'usager rentre le projet, la section , le plan : fonctionnement actuel

    ton aide est précieuse

    dan

  12. #12
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 595
    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 595
    Points : 281 910
    Points
    281 910
    Par défaut
    Bonjour,

    Voici un système polyvalent.

    Si tu inscris ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![dessin]![FiltreProjet]
    Tu opères la sélection lorsqu’il y a égalité stricte.

    Par contre avec cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*" & [Formulaires]![dessin]![FiltreProjet] & "*"
    Tu sélectionnes aussi lorsque [Formulaires]![dessin]![FiltreProjet] a la valeur « Null ».

    J’ai donc modifié la requête rDESSIN_REQUETE et aussi le contenu de tes zones de liste.

    Le bouton sert à remettre les trois filtres à Null => tout est alors sélectionné et au fur et à mesure que l’utilisateur remplit un filtre, les sélections se réduisent.
    Fichiers attachés Fichiers attachés

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut merci
    Merci pour ton aide

    Je viens de regarder ton fichier. Bonne idée le code : comme * & variable & *


    J'ai hate de la tester demain au travail sur win 7 et access 2010.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut mystère
    C'est mystérieux. C'est moi sur winxp et access 2007 francais , tout est ok, mais je viens de tester au travail, avec win 7 et access 2010 anglais et quand j'ouvre le formulaire, une fenetre apparet et me demande de rentrer la valeurs des filtres manuellement. C'est la même choses quand je selectonne un filtre.

    dan

  15. #15
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 595
    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 595
    Points : 281 910
    Points
    281 910
    Par défaut
    Bonjour,

    C'est sans doute la différence de version français => anglais.

    Dans la requête, là où tu as "formulaires", tu remplaces par "forms" et ça devrait marcher.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut anglais vs francais
    encore une fois un gros merci

    c'était bien ca, la version francais comprends l'anglais, mais pas le contraire.

    j'ai presque fini tout ce que je voulait faire

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

Discussions similaires

  1. [AC-2003] Requete recherche multi-criteres
    Par olivier777 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/06/2010, 10h53
  2. Requete linq multi critere ?
    Par superkiller dans le forum Linq
    Réponses: 0
    Dernier message: 19/05/2010, 14h57
  3. langage hql et requete multi critere
    Par pascal007 dans le forum Hibernate
    Réponses: 8
    Dernier message: 06/12/2007, 19h51
  4. [SQL] Création de requête multi critères
    Par gojaru dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 29/11/2006, 09h50
  5. [MySQL] ecriture d'une requête multi-critères
    Par webdestination dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/08/2006, 11h34

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