Bonjour
Comment faire un INNER JOIN ou l'on ne cherche pas une concordance parfaite
entre les deux champs utilisés mais où une concordance partielle est
suffisante ?
Je m'explique avec un exemple :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250]
INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre
ORDER BY [T_GOU_Titre].Titre;
Dans cet exemple, seuls les enregistrements où le champ « [T_SBF_250].Nom »
est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.
Merci à toutes et tous
Philippe Dhondt
Bonjour
Comment faire un INNER JOIN ou l'on ne cherche pas une concordance parfaite
entre les deux champs utilisés mais où une concordance partielle est
suffisante ?
Je m'explique avec un exemple :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250]
INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre
ORDER BY [T_GOU_Titre].Titre;
Dans cet exemple, seuls les enregistrements où le champ « [T_SBF_250].Nom »
est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.
Merci à toutes et tous
Philippe Dhondt
Bonjour
Comment faire un INNER JOIN ou l'on ne cherche pas une concordance parfaite
entre les deux champs utilisés mais où une concordance partielle est
suffisante ?
Je m'explique avec un exemple :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250]
INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre
ORDER BY [T_GOU_Titre].Titre;
Dans cet exemple, seuls les enregistrements où le champ « [T_SBF_250].Nom »
est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.
Merci à toutes et tous
Philippe Dhondt
Bonjour,
Pa sur de répondre exactement à ton problème mais ...
Je ne crois pas que cela soit possible avec inner join, il faut revenir
à du SQL (norme86) en faisant la condition de jointure sur la clause WHERE.
Ca donnerait :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
;
(A vérifier qui est contenu dans quoi !)
Pour 3 lettres consécutives ... !!! Sacré problème
je pense qu'il te faut construire une fonction perso dès lors que ces 3
lettres peuvent apparaitre n'importe où dans Nom et Titre.
Exemple Nom= forESTier et Titre = admonESTer (les 3 lettres 'EST')
qui devra retourner VRAI ou FAUX suivant la présence des 3 lettres dans
les 2 champs
Bonjour,
Pa sur de répondre exactement à ton problème mais ...
Je ne crois pas que cela soit possible avec inner join, il faut revenir
à du SQL (norme86) en faisant la condition de jointure sur la clause WHERE.
Ca donnerait :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
;
(A vérifier qui est contenu dans quoi !)
Pour 3 lettres consécutives ... !!! Sacré problème
je pense qu'il te faut construire une fonction perso dès lors que ces 3
lettres peuvent apparaitre n'importe où dans Nom et Titre.
Exemple Nom= forESTier et Titre = admonESTer (les 3 lettres 'EST')
qui devra retourner VRAI ou FAUX suivant la présence des 3 lettres dans
les 2 champs
Bonjour,
Pa sur de répondre exactement à ton problème mais ...
Je ne crois pas que cela soit possible avec inner join, il faut revenir
à du SQL (norme86) en faisant la condition de jointure sur la clause WHERE.
Ca donnerait :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
;
(A vérifier qui est contenu dans quoi !)
Pour 3 lettres consécutives ... !!! Sacré problème
je pense qu'il te faut construire une fonction perso dès lors que ces 3
lettres peuvent apparaitre n'importe où dans Nom et Titre.
Exemple Nom= forESTier et Titre = admonESTer (les 3 lettres 'EST')
qui devra retourner VRAI ou FAUX suivant la présence des 3 lettres dans
les 2 champs
...
Si pour les 3 lettres, tu acceptes qu'il faut sortir les enregistrements de nom qui contiennent au moins les 3 premieres lettres
de titre, n'importe où dans Nom, alors tu peut faire ça de la manière suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
AND Len([T_GOU_Titre].Titre)>=3Bonjour,
Pa sur de répondre exactement à ton problème mais ...
Je ne crois pas que cela soit possible avec inner join, il faut revenir à du SQL (norme86) en faisant la condition de jointure
sur la clause WHERE.
Ca donnerait :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
;
(A vérifier qui est contenu dans quoi !)
Pour 3 lettres consécutives ... !!! Sacré problème
je pense qu'il te faut construire une fonction perso dès lors que ces 3 lettres peuvent apparaitre n'importe où dans Nom et
Titre.
Exemple Nom= forESTier et Titre = admonESTer (les 3 lettres 'EST')
qui devra retourner VRAI ou FAUX suivant la présence des 3 lettres dans les 2 champs
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
...
Si pour les 3 lettres, tu acceptes qu'il faut sortir les enregistrements de nom qui contiennent au moins les 3 premieres lettres
de titre, n'importe où dans Nom, alors tu peut faire ça de la manière suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
AND Len([T_GOU_Titre].Titre)>=3
Bonjour,
Pa sur de répondre exactement à ton problème mais ...
Je ne crois pas que cela soit possible avec inner join, il faut revenir à du SQL (norme86) en faisant la condition de jointure
sur la clause WHERE.
Ca donnerait :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
;
(A vérifier qui est contenu dans quoi !)
Pour 3 lettres consécutives ... !!! Sacré problème
je pense qu'il te faut construire une fonction perso dès lors que ces 3 lettres peuvent apparaitre n'importe où dans Nom et
Titre.
Exemple Nom= forESTier et Titre = admonESTer (les 3 lettres 'EST')
qui devra retourner VRAI ou FAUX suivant la présence des 3 lettres dans les 2 champs
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
...
Si pour les 3 lettres, tu acceptes qu'il faut sortir les enregistrements de nom qui contiennent au moins les 3 premieres lettres
de titre, n'importe où dans Nom, alors tu peut faire ça de la manière suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
AND Len([T_GOU_Titre].Titre)>=3Bonjour,
Pa sur de répondre exactement à ton problème mais ...
Je ne crois pas que cela soit possible avec inner join, il faut revenir à du SQL (norme86) en faisant la condition de jointure
sur la clause WHERE.
Ca donnerait :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250], [T_GOU_Titre]
WHERE [T_SBF_250].Nom like '*' & [T_GOU_Titre].Titre & '*'
;
(A vérifier qui est contenu dans quoi !)
Pour 3 lettres consécutives ... !!! Sacré problème
je pense qu'il te faut construire une fonction perso dès lors que ces 3 lettres peuvent apparaitre n'importe où dans Nom et
Titre.
Exemple Nom= forESTier et Titre = admonESTer (les 3 lettres 'EST')
qui devra retourner VRAI ou FAUX suivant la présence des 3 lettres dans les 2 champs
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
salut eric, pas tout suivi mais y manque pas un left qq part ?
salut eric, pas tout suivi mais y manque pas un left qq part ?
salut eric, pas tout suivi mais y manque pas un left qq part ?
Bonjour Pierre,
Si on met un Left(), alors il ne sera plus possible de répondre à : "ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a *au minimum* trois lettres consecutives qui sont identiques." car LEFT va imposer de définir
le nb de caractères à prendre.
Donc je précisais que ca ne pourrait fonctionner que pour les n premieres lettres de Titre avec n >=3. (Bien que la formulation
était 3 lettres consécutives, c'est pourquoi, j'avais mis 'Sacré problème')
Sur un exemple c'est plus clair : on veut retrouver tous les Noms qui contiennent *au moins* les 3 premiers caractères de Titre
Table1 Table2
NOM TITRE
toto oto
tata iti
tutu otorino
titi toto
outro ot
oto-rhino utu
loto
turlututu
Ma requête renvoie:
NOM TITRE
loto oto
oto-rhino oto
titi iti
toto oto
toto toto
turlututu utu
tutu utu
(Pour ne pas voir en double ou plus les enregistrements comme toto dans la requête il suffit de ne pas demander TITRE dans le
Select.)
Mais, il est fort possible que je n'ai pas compris le problème, vu mon grand age ça ne serait pas étonnant ;-)
Qu'en penses-tu ?salut eric, pas tout suivi mais y manque pas un left qq part ?
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Pierre,
Si on met un Left(), alors il ne sera plus possible de répondre à : "ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a *au minimum* trois lettres consecutives qui sont identiques." car LEFT va imposer de définir
le nb de caractères à prendre.
Donc je précisais que ca ne pourrait fonctionner que pour les n premieres lettres de Titre avec n >=3. (Bien que la formulation
était 3 lettres consécutives, c'est pourquoi, j'avais mis 'Sacré problème')
Sur un exemple c'est plus clair : on veut retrouver tous les Noms qui contiennent *au moins* les 3 premiers caractères de Titre
Table1 Table2
NOM TITRE
toto oto
tata iti
tutu otorino
titi toto
outro ot
oto-rhino utu
loto
turlututu
Ma requête renvoie:
NOM TITRE
loto oto
oto-rhino oto
titi iti
toto oto
toto toto
turlututu utu
tutu utu
(Pour ne pas voir en double ou plus les enregistrements comme toto dans la requête il suffit de ne pas demander TITRE dans le
Select.)
Mais, il est fort possible que je n'ai pas compris le problème, vu mon grand age ça ne serait pas étonnant ;-)
Qu'en penses-tu ?
salut eric, pas tout suivi mais y manque pas un left qq part ?
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Pierre,
Si on met un Left(), alors il ne sera plus possible de répondre à : "ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a *au minimum* trois lettres consecutives qui sont identiques." car LEFT va imposer de définir
le nb de caractères à prendre.
Donc je précisais que ca ne pourrait fonctionner que pour les n premieres lettres de Titre avec n >=3. (Bien que la formulation
était 3 lettres consécutives, c'est pourquoi, j'avais mis 'Sacré problème')
Sur un exemple c'est plus clair : on veut retrouver tous les Noms qui contiennent *au moins* les 3 premiers caractères de Titre
Table1 Table2
NOM TITRE
toto oto
tata iti
tutu otorino
titi toto
outro ot
oto-rhino utu
loto
turlututu
Ma requête renvoie:
NOM TITRE
loto oto
oto-rhino oto
titi iti
toto oto
toto toto
turlututu utu
tutu utu
(Pour ne pas voir en double ou plus les enregistrements comme toto dans la requête il suffit de ne pas demander TITRE dans le
Select.)
Mais, il est fort possible que je n'ai pas compris le problème, vu mon grand age ça ne serait pas étonnant ;-)
Qu'en penses-tu ?salut eric, pas tout suivi mais y manque pas un left qq part ?
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour
Comment faire un INNER JOIN ou l'on ne cherche pas une concordance
parfaite
entre les deux champs utilisés mais où une concordance partielle est
suffisante ?
Je m'explique avec un exemple :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250]
INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre
ORDER BY [T_GOU_Titre].Titre;
Dans cet exemple, seuls les enregistrements où le champ «
[T_SBF_250].Nom »
est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.
Merci à toutes et tous
Philippe Dhondt
Bonjour
Comment faire un INNER JOIN ou l'on ne cherche pas une concordance
parfaite
entre les deux champs utilisés mais où une concordance partielle est
suffisante ?
Je m'explique avec un exemple :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250]
INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre
ORDER BY [T_GOU_Titre].Titre;
Dans cet exemple, seuls les enregistrements où le champ «
[T_SBF_250].Nom »
est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.
Merci à toutes et tous
Philippe Dhondt
Bonjour
Comment faire un INNER JOIN ou l'on ne cherche pas une concordance
parfaite
entre les deux champs utilisés mais où une concordance partielle est
suffisante ?
Je m'explique avec un exemple :
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250]
INNER JOIN [T_GOU_Titre] ON [T_SBF_250].Nom = [T_GOU_Titre].Titre
ORDER BY [T_GOU_Titre].Titre;
Dans cet exemple, seuls les enregistrements où le champ «
[T_SBF_250].Nom »
est rigoureusement identique au champ « [T_GOU_Titre].Titre » sont
sélectionnés. Or, ce qui m'intéresse, c'est de selectionner tous les
enregistrements pour lesquels il y a au minimum trois lettres consecutives
qui sont identiques.
Merci à toutes et tous
Philippe Dhondt
Salut,
Une piste :
Avec la fonction suivante contenu dans un module standard :
' 3 lettres consecutives de strChercheQuoi dans strChercheOu
Public Function comprend(strChercheQuoi As String, strChercheOu As String)
As Boolean
Dim i As Long
Dim nbrLenStrChercheQuoi As Long
Dim nbrLenStrChercheOu As Long
Const nbrCarComp = 3
comprend = False
nbrLenStrChercheQuoi = Len(strChercheQuoi)
nbrLenStrChercheOu = Len(strChercheOu)
If nbrLenStrChercheQuoi >= nbrCarComp And nbrLenStrChercheOu > > nbrCarComp Then
For i = 1 To nbrLenStrChercheQuoi - nbrCarComp + 1
If InStr(strChercheOu, Mid(strChercheQuoi, i, nbrCarComp)) > 0
Then
comprend = True
Exit Function
End If
Next
End If
End Function
et la requête suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250] INNER JOIN [T_GOU_Titre] ON comprend([T_SBF_250].Nom,
[T_GOU_Titre].Titre)
A+
Rv
Salut,
Une piste :
Avec la fonction suivante contenu dans un module standard :
' 3 lettres consecutives de strChercheQuoi dans strChercheOu
Public Function comprend(strChercheQuoi As String, strChercheOu As String)
As Boolean
Dim i As Long
Dim nbrLenStrChercheQuoi As Long
Dim nbrLenStrChercheOu As Long
Const nbrCarComp = 3
comprend = False
nbrLenStrChercheQuoi = Len(strChercheQuoi)
nbrLenStrChercheOu = Len(strChercheOu)
If nbrLenStrChercheQuoi >= nbrCarComp And nbrLenStrChercheOu > > nbrCarComp Then
For i = 1 To nbrLenStrChercheQuoi - nbrCarComp + 1
If InStr(strChercheOu, Mid(strChercheQuoi, i, nbrCarComp)) > 0
Then
comprend = True
Exit Function
End If
Next
End If
End Function
et la requête suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250] INNER JOIN [T_GOU_Titre] ON comprend([T_SBF_250].Nom,
[T_GOU_Titre].Titre)
A+
Rv
Salut,
Une piste :
Avec la fonction suivante contenu dans un module standard :
' 3 lettres consecutives de strChercheQuoi dans strChercheOu
Public Function comprend(strChercheQuoi As String, strChercheOu As String)
As Boolean
Dim i As Long
Dim nbrLenStrChercheQuoi As Long
Dim nbrLenStrChercheOu As Long
Const nbrCarComp = 3
comprend = False
nbrLenStrChercheQuoi = Len(strChercheQuoi)
nbrLenStrChercheOu = Len(strChercheOu)
If nbrLenStrChercheQuoi >= nbrCarComp And nbrLenStrChercheOu > > nbrCarComp Then
For i = 1 To nbrLenStrChercheQuoi - nbrCarComp + 1
If InStr(strChercheOu, Mid(strChercheQuoi, i, nbrCarComp)) > 0
Then
comprend = True
Exit Function
End If
Next
End If
End Function
et la requête suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250] INNER JOIN [T_GOU_Titre] ON comprend([T_SBF_250].Nom,
[T_GOU_Titre].Titre)
A+
Rv
Bonjour Rv,
Bien pour la fonction.
Mais la clause d' equi-jointure est rejetée (Access2k), non?
Par contre, pas de problème si la fonction est mise sur la restriction
du produit cartésien.Salut,
Une piste :
Avec la fonction suivante contenu dans un module standard :
' 3 lettres consecutives de strChercheQuoi dans strChercheOu
Public Function comprend(strChercheQuoi As String, strChercheOu As
String)
As Boolean
Dim i As Long
Dim nbrLenStrChercheQuoi As Long
Dim nbrLenStrChercheOu As Long
Const nbrCarComp = 3
comprend = False
nbrLenStrChercheQuoi = Len(strChercheQuoi)
nbrLenStrChercheOu = Len(strChercheOu)
If nbrLenStrChercheQuoi >= nbrCarComp And nbrLenStrChercheOu > > > nbrCarComp Then
For i = 1 To nbrLenStrChercheQuoi - nbrCarComp + 1
If InStr(strChercheOu, Mid(strChercheQuoi, i, nbrCarComp)) >
0
Then
comprend = True
Exit Function
End If
Next
End If
End Function
et la requête suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250] INNER JOIN [T_GOU_Titre] ON comprend([T_SBF_250].Nom,
[T_GOU_Titre].Titre)
A+
Rv
--
A+
Eric
Bonjour Rv,
Bien pour la fonction.
Mais la clause d' equi-jointure est rejetée (Access2k), non?
Par contre, pas de problème si la fonction est mise sur la restriction
du produit cartésien.
Salut,
Une piste :
Avec la fonction suivante contenu dans un module standard :
' 3 lettres consecutives de strChercheQuoi dans strChercheOu
Public Function comprend(strChercheQuoi As String, strChercheOu As
String)
As Boolean
Dim i As Long
Dim nbrLenStrChercheQuoi As Long
Dim nbrLenStrChercheOu As Long
Const nbrCarComp = 3
comprend = False
nbrLenStrChercheQuoi = Len(strChercheQuoi)
nbrLenStrChercheOu = Len(strChercheOu)
If nbrLenStrChercheQuoi >= nbrCarComp And nbrLenStrChercheOu > > > nbrCarComp Then
For i = 1 To nbrLenStrChercheQuoi - nbrCarComp + 1
If InStr(strChercheOu, Mid(strChercheQuoi, i, nbrCarComp)) >
0
Then
comprend = True
Exit Function
End If
Next
End If
End Function
et la requête suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250] INNER JOIN [T_GOU_Titre] ON comprend([T_SBF_250].Nom,
[T_GOU_Titre].Titre)
A+
Rv
--
A+
Eric
Bonjour Rv,
Bien pour la fonction.
Mais la clause d' equi-jointure est rejetée (Access2k), non?
Par contre, pas de problème si la fonction est mise sur la restriction
du produit cartésien.Salut,
Une piste :
Avec la fonction suivante contenu dans un module standard :
' 3 lettres consecutives de strChercheQuoi dans strChercheOu
Public Function comprend(strChercheQuoi As String, strChercheOu As
String)
As Boolean
Dim i As Long
Dim nbrLenStrChercheQuoi As Long
Dim nbrLenStrChercheOu As Long
Const nbrCarComp = 3
comprend = False
nbrLenStrChercheQuoi = Len(strChercheQuoi)
nbrLenStrChercheOu = Len(strChercheOu)
If nbrLenStrChercheQuoi >= nbrCarComp And nbrLenStrChercheOu > > > nbrCarComp Then
For i = 1 To nbrLenStrChercheQuoi - nbrCarComp + 1
If InStr(strChercheOu, Mid(strChercheQuoi, i, nbrCarComp)) >
0
Then
comprend = True
Exit Function
End If
Next
End If
End Function
et la requête suivante:
SELECT [T_SBF_250].Code, [T_SBF_250].Nom, [T_GOU_Titre].Titre,
[T_GOU_Titre].Yahoo
FROM [T_SBF_250] INNER JOIN [T_GOU_Titre] ON comprend([T_SBF_250].Nom,
[T_GOU_Titre].Titre)
A+
Rv
--
A+
Eric
Salut,
Access 2002, en effet! Sous 97 ça ne passe pas?
Et dans tous les cas, si la condition est sur la clause where le
problème ne se pose pas mais il me semble que c'est sensiblement plus lent!
A+
Rv
Salut,
Access 2002, en effet! Sous 97 ça ne passe pas?
Et dans tous les cas, si la condition est sur la clause where le
problème ne se pose pas mais il me semble que c'est sensiblement plus lent!
A+
Rv
Salut,
Access 2002, en effet! Sous 97 ça ne passe pas?
Et dans tous les cas, si la condition est sur la clause where le
problème ne se pose pas mais il me semble que c'est sensiblement plus lent!
A+
Rv