Soit une table Contacts contenant, entre autre, les champs suivants :
Prénom, NomFamille et CodePostal
Soit une table Import contenant, entre autre, les champs suivants : FIRST,
LAST et ZIP
J'ai fait une fonction PourTri(X) qui enlève les caractères accentués et
autres points, virgules etc ... et qui met le résultat en minuscule.
Je cherche, sans y parvenir, à créer une requête qui me sortirait les
enregistrements de la table Import qui ne sont pas déjà dans la table
Contacts, mais suivant certains critères que voici :
Je veux donc comparer si PourTri([Contacts].[Prénom]) <>
PourTri([Import].[FIRST]) ET PourTri([Contacts].[NomFamille]) <>
PourTri([Import].[LAST]) ET Left([Contacts].[CodePostal];5) <>
([Import].[ZIP];5) et obtenir les enregistrements de la table [Import] qui
remplissent toutes ces conditions.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
Après plusieurs essais infructueux, ce SQL fonctionne presque comme je l'attend :
SELECT [Import].[Numéro], [Import].[FIRST], [Import].[MID], [Import].[LAST], [Import].[ADDRESS1], [Import].[ADDRESS2], [Import].[CITY], [Import].[STATE], [Import].[ZIP], [Import].[COUNTRY], [Import].[COMPANY], [Import].[POSITION], [Import].[PHONE], [Import].[MAG_CODE], [Import].[EMAIL] FROM Import LEFT JOIN Contacts ON (left([Import].[ZIP],5)=left([Contacts].[CodePostal],5)) AND (([Import].[LAST])=([Contacts].[NomFamille])) AND (([Import].[FIRST])=([Contacts].[Prénom])) WHERE ((([Contacts].[Prénom]) Is Null));
En effet, ce SQL prend bien les 5 premiers caractères du code postal et ne tien pas compte de la casse (à ce propos, je ne sais pas pourquoi. Si qqn peut me l'expliquer ...) donc Jean-François et jean-françois ne sortiront pas dans la requête. Par contre je n'arrive pas à intégrer ma fonction PourTri(x) afin que Jean-François et jean francois correspondent.
Comment dois-je faire ? J'espère qu'on ne me répondra pas qu'il est impossible d'utiliser, dans une requête, une fonction créée dans un module. Si c'est le cas, je sais encore moins comment faire.
Merci de vos z'avis z'avisés,
Jean-Marc
"Jean-Marc" a écrit dans le message de news:OFM$
Salut à tous,
Soit une table Contacts contenant, entre autre, les champs suivants : Prénom, NomFamille et CodePostal Soit une table Import contenant, entre autre, les champs suivants : FIRST, LAST et ZIP
J'ai fait une fonction PourTri(X) qui enlève les caractères accentués et autres points, virgules etc ... et qui met le résultat en minuscule.
Je cherche, sans y parvenir, à créer une requête qui me sortirait les enregistrements de la table Import qui ne sont pas déjà dans la table Contacts, mais suivant certains critères que voici :
Je veux donc comparer si PourTri([Contacts].[Prénom]) <> PourTri([Import].[FIRST]) ET PourTri([Contacts].[NomFamille]) <> PourTri([Import].[LAST]) ET Left([Contacts].[CodePostal];5) <> ([Import].[ZIP];5) et obtenir les enregistrements de la table [Import] qui remplissent toutes ces conditions.
Quel est le SQL de cette requête ?
Merci de vos z'avis z'avisés,
Jean-Marc
Après plusieurs essais infructueux, ce SQL fonctionne presque comme je
l'attend :
SELECT [Import].[Numéro], [Import].[FIRST], [Import].[MID], [Import].[LAST],
[Import].[ADDRESS1], [Import].[ADDRESS2], [Import].[CITY], [Import].[STATE],
[Import].[ZIP], [Import].[COUNTRY], [Import].[COMPANY], [Import].[POSITION],
[Import].[PHONE], [Import].[MAG_CODE], [Import].[EMAIL]
FROM Import LEFT JOIN Contacts ON
(left([Import].[ZIP],5)=left([Contacts].[CodePostal],5)) AND
(([Import].[LAST])=([Contacts].[NomFamille])) AND
(([Import].[FIRST])=([Contacts].[Prénom]))
WHERE ((([Contacts].[Prénom]) Is Null));
En effet, ce SQL prend bien les 5 premiers caractères du code postal et ne
tien pas compte de la casse (à ce propos, je ne sais pas pourquoi. Si qqn
peut me l'expliquer ...) donc Jean-François et jean-françois ne sortiront
pas dans la requête. Par contre je n'arrive pas à intégrer ma fonction
PourTri(x) afin que Jean-François et jean francois correspondent.
Comment dois-je faire ?
J'espère qu'on ne me répondra pas qu'il est impossible d'utiliser, dans une
requête, une fonction créée dans un module.
Si c'est le cas, je sais encore moins comment faire.
Merci de vos z'avis z'avisés,
Jean-Marc
"Jean-Marc" <NoSpam.jm.deneyer@advalvas.be> a écrit dans le message de
news:OFM$WdlpEHA.3244@tk2msftngp13.phx.gbl...
Salut à tous,
Soit une table Contacts contenant, entre autre, les champs suivants :
Prénom, NomFamille et CodePostal
Soit une table Import contenant, entre autre, les champs suivants : FIRST,
LAST et ZIP
J'ai fait une fonction PourTri(X) qui enlève les caractères accentués et
autres points, virgules etc ... et qui met le résultat en minuscule.
Je cherche, sans y parvenir, à créer une requête qui me sortirait les
enregistrements de la table Import qui ne sont pas déjà dans la table
Contacts, mais suivant certains critères que voici :
Je veux donc comparer si PourTri([Contacts].[Prénom]) <>
PourTri([Import].[FIRST]) ET PourTri([Contacts].[NomFamille]) <>
PourTri([Import].[LAST]) ET Left([Contacts].[CodePostal];5) <>
([Import].[ZIP];5) et obtenir les enregistrements de la table [Import] qui
remplissent toutes ces conditions.
Après plusieurs essais infructueux, ce SQL fonctionne presque comme je l'attend :
SELECT [Import].[Numéro], [Import].[FIRST], [Import].[MID], [Import].[LAST], [Import].[ADDRESS1], [Import].[ADDRESS2], [Import].[CITY], [Import].[STATE], [Import].[ZIP], [Import].[COUNTRY], [Import].[COMPANY], [Import].[POSITION], [Import].[PHONE], [Import].[MAG_CODE], [Import].[EMAIL] FROM Import LEFT JOIN Contacts ON (left([Import].[ZIP],5)=left([Contacts].[CodePostal],5)) AND (([Import].[LAST])=([Contacts].[NomFamille])) AND (([Import].[FIRST])=([Contacts].[Prénom])) WHERE ((([Contacts].[Prénom]) Is Null));
En effet, ce SQL prend bien les 5 premiers caractères du code postal et ne tien pas compte de la casse (à ce propos, je ne sais pas pourquoi. Si qqn peut me l'expliquer ...) donc Jean-François et jean-françois ne sortiront pas dans la requête. Par contre je n'arrive pas à intégrer ma fonction PourTri(x) afin que Jean-François et jean francois correspondent.
Comment dois-je faire ? J'espère qu'on ne me répondra pas qu'il est impossible d'utiliser, dans une requête, une fonction créée dans un module. Si c'est le cas, je sais encore moins comment faire.
Merci de vos z'avis z'avisés,
Jean-Marc
"Jean-Marc" a écrit dans le message de news:OFM$
Salut à tous,
Soit une table Contacts contenant, entre autre, les champs suivants : Prénom, NomFamille et CodePostal Soit une table Import contenant, entre autre, les champs suivants : FIRST, LAST et ZIP
J'ai fait une fonction PourTri(X) qui enlève les caractères accentués et autres points, virgules etc ... et qui met le résultat en minuscule.
Je cherche, sans y parvenir, à créer une requête qui me sortirait les enregistrements de la table Import qui ne sont pas déjà dans la table Contacts, mais suivant certains critères que voici :
Je veux donc comparer si PourTri([Contacts].[Prénom]) <> PourTri([Import].[FIRST]) ET PourTri([Contacts].[NomFamille]) <> PourTri([Import].[LAST]) ET Left([Contacts].[CodePostal];5) <> ([Import].[ZIP];5) et obtenir les enregistrements de la table [Import] qui remplissent toutes ces conditions.