Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/06/2011, 14h22   #1
Invité de passage
 
Rodolphe Planchon
Inscription : septembre 2010
Messages : 1
Détails du profil
Informations personnelles :
Nom : Rodolphe Planchon

Informations forums :
Inscription : septembre 2010
Messages : 1
Points : 0
Points : 0
Par défaut Jointure impliquant l'extraction d'une chaîne de caractères

Bonjour à tous,

Dans access, je souhaite créer une requête sur des tables liées par une relation ODBC (pointant vers une machine AS/400).

Dans cette requête, je souhaite établir une liaison entre le champ A d'une table 1 et l'extraction d'une partie du champ B de la table 2 correspond à la valeur du champ A.

EX:

Table 1
Champ A = 1500

Table2
Champ B = 21564793215002641894


Comment dois-je procéder pour créer ce type de liaison ? J'ai essayé de rajouter la fonction MID directement dans les propriétés de la jointure, sans succès.

Merci d'avance pour votre aide.

Rodolphe
rplog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 14h35   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

Une solution "artisanale"* :

Si dans la table2, la valeur cherchée est toujours au même endroit, transite par une requête sur la table2, qui fait apparaître tous les champs nécessaires + l'extract.
Tu établis ensuite ta relation sur la Table1 et cette requête.


* avant peu, l'un** des virtuoses du sql te donnera certainement une solution plus élégante.

** il se reconnaîtra
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 15h41   #3
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Rplog et Claude,

Après la solution "artisanale" (que j'appliquerais, si
Citation:
Envoyé par Claude
.../... la valeur cherchée est toujours au même endroit .../...
), une solution "gourmande" :

Via l'assistant :
- ajoutes Table1 (FROM) ;
- ajoutes Table2 (FROM) ;
=> sans liaison entre elles (c'est ça le secret...) ;
- sélectionnes ChampA et ChampB (SELECT) ;
=> Critères du ChampB : Comme "*" & [Table1].[ChampA] & "*" (WHERE).

Solution "gourmande" car toutes les combinaisons possibles entre Table1 et Table2 sont étudiées par Access... (supprimer le critère, pour s'en rendre compte). Donc, solution un peu "bourrin", aussi.

Quant à une des solutions "élégantes", elle consisterait, sans doute, à faire accepter, par ACCESS :
Code sql :
.../... FROM Table1 LEFT JOIN Table2 ON Table2.ChampB LIKE  "*" & [Table1].[ChampA] & "*" .../...
mais je ne pense pas que cela soit possible (tests non concluants).


Mais LA solution "élégante" sera, sans aucun doute, délivrée par
Citation:
Envoyé par Claude
** il se reconnaîtra
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h51.


 
 
 
 
Partenaires

Hébergement Web