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 :

Quelle requête liera deux tables en analysant leur contenu ?


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Points : 39
    Points
    39
    Par défaut Quelle requête liera deux tables en analysant leur contenu ?
    Bonjour,
    J’ai deux tables non-encore liées. L’une contient un champ (mémo) dans lequel sont stockés 900 textes décrivant des procédés photographiques. L’autre contient un champ (text) dans lequel sont stockés 1000 noms de produits chimiques. Je voudrais générer automatiquement une liste des procédés photographiques dans lesquels tel puis tel produits chimiques sont cités.
    L’alternative de rechercher "manuellement" les produits chimiques un par un dans les textes, puis d’enregistrer le n° de procédé photographique en face de chaque n° de produit chimique me semble aussi fastidieuse que pénible !
    Merci par avance aux esprits ingénieux et expérimentés qui m'aideront à résoudre cette question.
    Monbasinstinct

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Fais une requête selection où tu cherche dans ton champ mémo les mots contenus dans ta table texte.

    Je dois te mettre engarde que tu va obtenir une très grande quantité de réponses.
    Mais je ne pense pas plus de 9 * 10E5.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Heureux-oli
    Fais une requête selection où tu cherche dans ton champ mémo les mots contenus dans ta table texte.

    Je dois te mettre engarde que tu va obtenir une très grande quantité de réponses.
    Mais je ne pense pas plus de 9 * 10E5.
    Tout d'abord, merci H-Oli de m'aider.
    Je ne suis cependant pas certain d'avoir tout compris.
    Peux-tu m'indiquer où je dois tapper ce code ?
    Et en note, qu'est-ce que signifie "pas plus de 9 * 10E5" ?
    Monbasinstinct

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Dans l'éditeur de requêtes.

    900.000 réponses.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Excuse moi, ça ne fonctionne pas.

    Je cherche !
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Heureux-oli
    Excuse moi, ça ne fonctionne pas.

    Je cherche !
    Alors effectivement, j'ai essayé et ça ne marche pas. Merci d'avoir essayé et de chercher encore. J'ai essayé avec la commande Like (c'est léquivalent de comme en français non ?). Mais j'ai l'impression que ça ne prend pas en compte tous les enregistrements d'un champ mais des mots entre guillemets seulement... Peut-être faudrait-il générer par un code une suite de noms de produits chimiques, dont chacun serait entre guillemets et intercalé d'un OR ? Mais je ne sais pas si je pourrais alors récupérer le numéro de produit chimique pour chaque numéro de procédé photographique dans la liste résultante... Je suis preplexe et mes élucubrations me semblent tellement alambiquées. Je suis tellement loin d'avoir la compétence nécessaire pour savoir les mettre en oeuvre ! :pingoin:
    Monbasinstinct

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu as essayé like("*" & [monchamp] & "*")
    Elle est pas belle la vie ?

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Random,

    J'ai essayé comme ça aussi et ça ne fonctionne pas !

    Je pense que le formulaire de recherche multicritères de cafeine devrait faire l'affaire.
    Il est possible de rechercher sur une partie seulement du contenu.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Monbasinstinct
    Citation Envoyé par Heureux-oli
    Random,

    J'ai essayé comme ça aussi et ça ne fonctionne pas !

    Je pense que le formulaire de recherche multicritères de cafeine devrait faire l'affaire.
    Il est possible de rechercher sur une partie seulement du contenu.
    H-Oli et Random,
    Merci de votre aide. Cependant, ça ne fonctionne pas.
    Le formulaire de recherche multicritere de Caféïne n'effectue pas de recherche systématique à partir d'une liste de termes toute entière, terme après terme. L'utilisateur doit choisir un terme unique pour chaque critère de recherche. Ce terme peut en effet être recherché parmi des phrases plus longues (ou chaines de caractères), en utilisant l'étoile (*) mais il s'agit d'une recherche à partir et dans une seule table et pour des termes choisis un par un.
    C'est d'ailleurs pour cela que les criteres doivent être choisis car, si au contraire, pour chaque critere de recherche, l'intégralité des enregistrements (termes de recherche) se succédaient automatiquement, le résultat reproduirait la table entière telle-quelle, ou plus probablement quelque chose d'abérrant. Cela reviendrait à rechercher dans une table, tout ce qu'elle contiendrait !

    Mon problème consiste plutôt à rechercher une liste de termes dans le champ d'une table (indépendante de cette liste de termes). Je ne vois pas non plus comment adapter le tutoriel de Caféïne à mon problème.
    Je me dis qu'il doit être possible d'automatiser la génération de cette sorte d'index (au sens littéraire), sinon à quoi serviraient les ordinateurs, mais peut-être me trompe-je énormément !
    Monbasinstinct

  10. #10
    Invité
    Invité(e)
    Par défaut
    Salut,

    A vérifié, mais il me semble que sur un Champ Mémo on ne peut faire de test que sur les 255 premiers caractères comme un champ texte, j'ai lu cela une fois, mais je ne sais plus où

    Starec

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Starec
    Salut,

    A vérifié, mais il me semble que sur un Champ Mémo on ne peut faire de test que sur les 255 premiers caractères comme un champ texte, j'ai lu cela une fois, mais je ne sais plus où

    Starec
    Starec,
    Je crois pas que ça soit juste ce que tu dis, parce que lorsque je fais une recherche "à la main", de n'importe quel nom de produit chimique, ça trouve sans problème le ou les procédés photographique qui l'utilisent, quel que soit l'emplacement du nom du produit (début, milieu ou fin de texte long). Donc c'est pas ça le problème.
    Monbasinstinct

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par random
    tu as essayé like("*" & [monchamp] & "*")
    Cher Random,
    je dois rendre à César ce qui lui appartient ! Bravo à toi car, c'est ta formulation qui fonctionne correctement. Impec !
    Il fallait cependant trifouiller un peu. J'explique donc pour ceux qui voudront faire quelque chose dans le genre et qui seront tombés sur ce sujet en cherchant dans le Forum:
    Il faut faire apparaître, en mode création de requête, les deux tables qui ne sont pas liées. Il faut aussi que la requête comprenne au moins un champ de chaque table. Ensuite, il faut que la formulation indiquée plus haut par Random soit tapée en mode SQL dans les conditions WHERE puis, Like etc.
    En revanche, ça mouline pendant plus de trois minutes avant d'afficher le résultat... Vous pourriez pas m'aiguiller sur un tuto qui permette de contourner ce problème de lenteur ? Je pense à enregistrer le résultat automatiquement dans une table qui serait réactualisée de temps en temps seulement. Ou quelque chose dans le genre.
    Merci Random d'avoir trouvé la soluce
    Merci aux autres d'avoir cherché.
    Monbasinstinct

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    je te propose la démarche suivant
    création d'une table index
    deux champs
    recherche ou

    tu fais tourner ta requête de produit cartésien comme tu l'as fait
    avec tous les produits mais en prenant seulement le premier enregistrement du champ mémo correspondant à l'interro et en création de table

    tu enregistres le résultat de cette requête dans ta table index

    désormais tu disposes d'un annuaire cela devrait améliorer les futures recherches

    à l'ajout d'un nouveau mémo ou d'un nouveau produit tu mets à jour
    uniquement les occurences relatives à la dernière entrée
    Elle est pas belle la vie ?

  14. #14
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Random, toues mes excuses, j'avais omis les ().
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par random
    je te propose la démarche suivant
    création d'une table index
    deux champs
    recherche ou

    tu fais tourner ta requête de produit cartésien comme tu l'as fait
    avec tous les produits mais en prenant seulement le premier enregistrement du champ mémo correspondant à l'interro et en création de table

    tu enregistres le résultat de cette requête dans ta table index

    désormais tu disposes d'un annuaire cela devrait améliorer les futures recherches

    à l'ajout d'un nouveau mémo ou d'un nouveau produit tu mets à jour
    uniquement les occurences relatives à la dernière entrée
    Cher Random,
    Merci encore. Je suis quand même pas bien certain de pouvoir affirmer que j'ai tout pigé mais ça me parle un peu quand même. Je vais devoir rentrer des données dans mes tables pendant un moment là. Est-ce que je peux me permettre de te relancer par le forum sur ce sujet quand j'en aurai fini (si je n'arrive pas tout seul à faire ce que tu viens de me conseiller gentiment) ? J'imprime quand même maintenant.
    Porte-toi bien,
    Monbasinstinct
    P.S. 1 _ Une petite précision, crois-tu que cette requête chercheuse marchera aussi sur un champ dont le texte est formaté dans un contrôle Rich Text Box de formulaire ?
    P.S. 2 pour H-Oli _ c'est sympa d'avoir aidé aussi.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/05/2007, 15h58
  2. résultats requête avec deux tables
    Par ideal23 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/03/2007, 10h10
  3. Requête sur deux tables et réponses en colonnes
    Par grandoc dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/12/2006, 12h49
  4. Requête sur deux tables en même temps
    Par will89 dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/04/2006, 11h01
  5. Problème de requêtes sur deux tables
    Par Pymm dans le forum Access
    Réponses: 6
    Dernier message: 06/09/2005, 09h06

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