Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Requête ajout sans doublons

12 réponses
Avatar
Bauwens François
Bonjour,

Je souhaite réaliser une requête d'ajout qui vérifie avant l'ajout que les
enregistrements ajoutés ne sont pas déjà présent dans la table.

J'ai trouvé ce tuto
http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/chap16.htm (point 4)
mais je ne comprends pas comment "créer un index sans doublons sur les
champs de la première table communs avec ceux de la seconde table". Dans la
table d'origine il y a une clef prim numauto et dans celle d'arrivée aussi.
Le clef prim ne porte donc pas les mêmes numéros.

Quelqu'un connaît-il la marche à suivre ?
Merci pour votre aide et bonne journée

François

10 réponses

1 2
Avatar
Patrice
bonjour,

Ds ton cas, le choix de numéro auto n'est pas le meilleur, il faut supprimer
ce champ et mettre ta clé sur les champs où tu veux éviter les doublons


Bonjour,

Je souhaite réaliser une requête d'ajout qui vérifie avant l'ajout que les
enregistrements ajoutés ne sont pas déjà présent dans la table.

J'ai trouvé ce tuto
http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/chap16.htm (point 4)
mais je ne comprends pas comment "créer un index sans doublons sur les
champs de la première table communs avec ceux de la seconde table". Dans la
table d'origine il y a une clef prim numauto et dans celle d'arrivée aussi.
Le clef prim ne porte donc pas les mêmes numéros.

Quelqu'un connaît-il la marche à suivre ?
Merci pour votre aide et bonne journée

François





Avatar
Eric
Bonjour François,

Je comprends pas ta remarque relative aux clés primaires numauto. A un
moment donné un numauto de la 1ere table peut être égal à un numauto de
la 2ème. Si ce numauto n'est pas utilisé à d'autres fins que d'avoir une
clé primaire dans la table recevant les enregistrements, laisses-le se
gérer lui-même dans cette table.

Pour faire ce que tu veux, partons d'un exemple:

Table B1
LeNum LeNom LePrenom
1 BLANC Pierre
2 NOIR Roger
3 MARTIN Alain
4 DUPONT Luc

Table B2
LeNum LeNom LePrenom
1 DUPONT Luc
2 DUBOIS Jean
3 MARTIN Eric
4 BLANC Pierre

On souhaite ajouter à la table B2 les enregistrements de la table B1
mais sans avoir, à l'issue de l'ajout, des doublons dans la table B2,
donc ici ajouter seulement NOIR Roger et MARTIN Alain

Tu peux le faire avec le SQL suivant:
INSERT INTO B2(LeNom,LePrenom)
SELECT LeNom, LePrenom
FROM B1
WHERE b1.LeNom & b1.leprenom NOT IN (SELECT b2.LeNom & b2.leprenom FROM b2)

Résultat obtenu pour la table B2:
LeNum LeNom LePrenom
1 DUPONT Luc
2 DUBOIS Jean
3 MARTIN Eric
4 BLANC Pierre
5 NOIR Roger
6 MARTIN Alain

Cela répond-il à ta question?


Bonjour,

Je souhaite réaliser une requête d'ajout qui vérifie avant l'ajout que les
enregistrements ajoutés ne sont pas déjà présent dans la table.

J'ai trouvé ce tuto
http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/chap16.htm (point 4)
mais je ne comprends pas comment "créer un index sans doublons sur les
champs de la première table communs avec ceux de la seconde table". Dans la
table d'origine il y a une clef prim numauto et dans celle d'arrivée aussi.
Le clef prim ne porte donc pas les mêmes numéros.

Quelqu'un connaît-il la marche à suivre ?
Merci pour votre aide et bonne journée

François




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
.../...

Il faudrait pour la concaténation faire :
b1.LeNom & " " & b1.leprenom au lien de b1.LeNom & b1.leprenom
(Idem pour b2.LeNom & b2.leprenom)
des fois qu'on tombe sur DUPONT Ony dans une table et DUPON Tony dans
l'autre car dans les 2 cas la concaténation donnerait DUPONTOny, Access
ne différenciant pas les majuscules/minuscules.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
Bauwens François
Bonjour,

Et merci pour la réponse, super rapide d'ailleurs, bon je n'ai pas tapé
directement en sql, j'ai fais une requête ajout qui donne le code sql
suivant :

PARAMETERS [quelle année ?] Text ( 255 ), [Quel numéro d'arrêté ?] Text (
255 );
INSERT INTO [arrêtés sub extra] ( année, FK_DG_extra, objet, montant, [N°
arrêté], [N° d'ordre bénéficiaire] ) IN 'U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb'
SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].fk_Code_DG,
[T-INSCRIPTION].Objet, [T-INSCRIPTION].[Montant octroyé],
[T-INSCRIPTION].[N° Arrêté], [T-INSCRIPTION].num_beneficiaire
FROM [T-INSCRIPTION]
WHERE ((([T-INSCRIPTION].Année)=[Quelle année ?]) AND (([T-INSCRIPTION].[N°
Arrêté])=[Quel numéro d'arrêté ?]));


Si j'ai bien compris je devrais en faire un truc comme :
PARAMETERS [quelle année ?] Text ( 255 ), [Quel numéro d'arrêté ?] Text (
255 );
INSERT INTO [arrêtés sub extra] ( année, FK_DG_extra, objet, montant, [N°
arrêté], [N° d'ordre bénéficiaire] ) IN 'U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb'
SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].fk_Code_DG,
[T-INSCRIPTION].Objet, [T-INSCRIPTION].[Montant octroyé],
[T-INSCRIPTION].[N° Arrêté], [T-INSCRIPTION].num_beneficiaire
FROM [T-INSCRIPTION]
WHERE ((([T-INSCRIPTION].Année)=[Quelle année ?]) AND (([T-INSCRIPTION].[N°
Arrêté])=[Quel numéro d'arrêté ?]));




WHERE [T-INSCRIPTION].Année &" "& [T-INSCRIPTION].fk_Code_DG &" "&
[T-INSCRIPTION].Objet &" "& [T-INSCRIPTION].[Montant octroyé] &" "&
[T-INSCRIPTION].[N° Arrêté] &" "& [T-INSCRIPTION].num_beneficiaire NOT IN
([U:DAJEPJEUNESSEBase de données GlobaleZONE DE
TEST18-7testandré.mdb].Année &" "& U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb].FK_DG_extra &" "&
[U:DAJEPJEUNESSEBase de données GlobaleZONE DE
TEST18-7testandré.mdb].objet &" "& [U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb].montant &" "&
[U:DAJEPJEUNESSEBase de données GlobaleZONE DE
TEST18-7testandré.mdb].N° arrêté &" "& [U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb].N° d'ordre bénéficiaire)


Est-ce que ça a l'air d'aller dans le bon sens ? C'est un peu laborieux ;o)
Et si tu veux bien me dire comment je peux relier les deux morceaux WHERE en
un...

Merci



"Eric" a écrit dans le message de
news:
Bonjour François,

Je comprends pas ta remarque relative aux clés primaires numauto. A un
moment donné un numauto de la 1ere table peut être égal à un numauto de
la 2ème. Si ce numauto n'est pas utilisé à d'autres fins que d'avoir une
clé primaire dans la table recevant les enregistrements, laisses-le se
gérer lui-même dans cette table.

Pour faire ce que tu veux, partons d'un exemple:

Table B1
LeNum LeNom LePrenom
1 BLANC Pierre
2 NOIR Roger
3 MARTIN Alain
4 DUPONT Luc

Table B2
LeNum LeNom LePrenom
1 DUPONT Luc
2 DUBOIS Jean
3 MARTIN Eric
4 BLANC Pierre

On souhaite ajouter à la table B2 les enregistrements de la table B1
mais sans avoir, à l'issue de l'ajout, des doublons dans la table B2,
donc ici ajouter seulement NOIR Roger et MARTIN Alain

Tu peux le faire avec le SQL suivant:
INSERT INTO B2(LeNom,LePrenom)
SELECT LeNom, LePrenom
FROM B1
WHERE b1.LeNom & b1.leprenom NOT IN (SELECT b2.LeNom & b2.leprenom FROM
b2)


Résultat obtenu pour la table B2:
LeNum LeNom LePrenom
1 DUPONT Luc
2 DUBOIS Jean
3 MARTIN Eric
4 BLANC Pierre
5 NOIR Roger
6 MARTIN Alain

Cela répond-il à ta question?


Bonjour,

Je souhaite réaliser une requête d'ajout qui vérifie avant l'ajout que
les


enregistrements ajoutés ne sont pas déjà présent dans la table.

J'ai trouvé ce tuto
http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/chap16.htm (point 4)
mais je ne comprends pas comment "créer un index sans doublons sur les
champs de la première table communs avec ceux de la seconde table". Dans
la


table d'origine il y a une clef prim numauto et dans celle d'arrivée
aussi.


Le clef prim ne porte donc pas les mêmes numéros.

Quelqu'un connaît-il la marche à suivre ?
Merci pour votre aide et bonne journée

François




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
Bonjour,

Apparemment tu travailles sur 2 bases.
Mon idée serait d'attacher la table source dans la base dont la table
doit être mise à jour. Ainsi tu fais tout dans la même base le temps du
traitement puis tu supprimes l'attache. Le SQL n'en sera que plus simple.

Une remarque : ta clause Parameters, tu definis l'année comme du Texte,
ca serait pas mieux de définir l'année comme un entier court :
PARAMETERS [quelle année ?] Short
Idem pour le [Quel numéro d'arrêté ?] mais toi seul connais le type de
tes champs

Pour la clause where, il faut que tu identifies les champs discriminants
que tu dois concaténer, car tu n'es pas obligé de les concaténer tous.
Le Not IN porte sur un Select dans mon exemple.

ca donnerait quelle chose comme ( en retenant 3 champs discriminants
pour éviter les doublons)

WHERE Année =[Quelle année ?] AND [N° Arrêté]=[Quel numéro d'arrêté ?]
AND [T-INSCRIPTION].[N° Arrêté] & " " & [T-INSCRIPTION].fk_Code_DG & " "
& [T-INSCRIPTION].Objet Not IN (SELECT [N° Arrêté] & " " & fk_Code_DG &
" " & Objet FROM [arrêtés sub extra] )

écrit à main levée donc peut-être manque-t-il des choses.

Là, j'ai pris le n° d'arrêté mais c'est peut être pas bon, de plus dans
le Select interne (celui mis dans le NOT IN, il faudrait aussi
restreindre sur l'année et le n° passés en paramètre.

Bonjour,

Et merci pour la réponse, super rapide d'ailleurs, bon je n'ai pas tapé
directement en sql, j'ai fais une requête ajout qui donne le code sql
suivant :

PARAMETERS [quelle année ?] Text ( 255 ), [Quel numéro d'arrêté ?] Text (
255 );
INSERT INTO [arrêtés sub extra] ( année, FK_DG_extra, objet, montant, [N°
arrêté], [N° d'ordre bénéficiaire] ) IN 'U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb'
SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].fk_Code_DG,
[T-INSCRIPTION].Objet, [T-INSCRIPTION].[Montant octroyé],
[T-INSCRIPTION].[N° Arrêté], [T-INSCRIPTION].num_beneficiaire
FROM [T-INSCRIPTION]
WHERE ((([T-INSCRIPTION].Année)=[Quelle année ?]) AND (([T-INSCRIPTION].[N°
Arrêté])=[Quel numéro d'arrêté ?]));


Si j'ai bien compris je devrais en faire un truc comme :
PARAMETERS [quelle année ?] Text ( 255 ), [Quel numéro d'arrêté ?] Text (
255 );
INSERT INTO [arrêtés sub extra] ( année, FK_DG_extra, objet, montant, [N°
arrêté], [N° d'ordre bénéficiaire] ) IN 'U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb'
SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].fk_Code_DG,
[T-INSCRIPTION].Objet, [T-INSCRIPTION].[Montant octroyé],
[T-INSCRIPTION].[N° Arrêté], [T-INSCRIPTION].num_beneficiaire
FROM [T-INSCRIPTION]
WHERE ((([T-INSCRIPTION].Année)=[Quelle année ?]) AND (([T-INSCRIPTION].[N°
Arrêté])=[Quel numéro d'arrêté ?]));




WHERE [T-INSCRIPTION].Année &" "& [T-INSCRIPTION].fk_Code_DG &" "&
[T-INSCRIPTION].Objet &" "& [T-INSCRIPTION].[Montant octroyé] &" "&
[T-INSCRIPTION].[N° Arrêté] &" "& [T-INSCRIPTION].num_beneficiaire NOT IN
([U:DAJEPJEUNESSEBase de données GlobaleZONE DE
TEST18-7testandré.mdb].Année &" "& U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb].FK_DG_extra &" "&
[U:DAJEPJEUNESSEBase de données GlobaleZONE DE
TEST18-7testandré.mdb].objet &" "& [U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb].montant &" "&
[U:DAJEPJEUNESSEBase de données GlobaleZONE DE
TEST18-7testandré.mdb].N° arrêté &" "& [U:DAJEPJEUNESSEBase de données
GlobaleZONE DE TEST18-7testandré.mdb].N° d'ordre bénéficiaire)


Est-ce que ça a l'air d'aller dans le bon sens ? C'est un peu laborieux ;o)
Et si tu veux bien me dire comment je peux relier les deux morceaux WHERE en
un...

Merci



"Eric" a écrit dans le message de
news:

Bonjour François,

Je comprends pas ta remarque relative aux clés primaires numauto. A un
moment donné un numauto de la 1ere table peut être égal à un numauto de
la 2ème. Si ce numauto n'est pas utilisé à d'autres fins que d'avoir une
clé primaire dans la table recevant les enregistrements, laisses-le se
gérer lui-même dans cette table.

Pour faire ce que tu veux, partons d'un exemple:

Table B1
LeNum LeNom LePrenom
1 BLANC Pierre
2 NOIR Roger
3 MARTIN Alain
4 DUPONT Luc

Table B2
LeNum LeNom LePrenom
1 DUPONT Luc
2 DUBOIS Jean
3 MARTIN Eric
4 BLANC Pierre

On souhaite ajouter à la table B2 les enregistrements de la table B1
mais sans avoir, à l'issue de l'ajout, des doublons dans la table B2,
donc ici ajouter seulement NOIR Roger et MARTIN Alain

Tu peux le faire avec le SQL suivant:
INSERT INTO B2(LeNom,LePrenom)
SELECT LeNom, LePrenom
FROM B1
WHERE b1.LeNom & b1.leprenom NOT IN (SELECT b2.LeNom & b2.leprenom FROM


b2)

Résultat obtenu pour la table B2:
LeNum LeNom LePrenom
1 DUPONT Luc
2 DUBOIS Jean
3 MARTIN Eric
4 BLANC Pierre
5 NOIR Roger
6 MARTIN Alain

Cela répond-il à ta question?



Bonjour,

Je souhaite réaliser une requête d'ajout qui vérifie avant l'ajout que



les

enregistrements ajoutés ne sont pas déjà présent dans la table.

J'ai trouvé ce tuto
http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/chap16.htm (point 4)
mais je ne comprends pas comment "créer un index sans doublons sur les
champs de la première table communs avec ceux de la seconde table". Dans



la

table d'origine il y a une clef prim numauto et dans celle d'arrivée



aussi.

Le clef prim ne porte donc pas les mêmes numéros.

Quelqu'un connaît-il la marche à suivre ?
Merci pour votre aide et bonne journée

François




--
A+
Eric
http://www.mpfa.info/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






--
A+
Eric
http://www.mpfa.info/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
.../...
A tester sur une copie de la bd à mettre à jour évidemment


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
Bauwens François
Merci
Je vais tenter l'aventure mais je suis obligé de mettre tous les champs dans
le "not in" car je dois éviter le doublon de la combinaison de tous les
champs mais chacun des champs peut avoir des valeurs égales dans la table
par ailleurs.

Merci pour ton aide... ça ne m'étonnrait pas que je revienne à la charge ;o)
Bonne journée
François

"Eric" a écrit dans le message de
news:%
.../...
A tester sur une copie de la bd à mettre à jour évidemment


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Bauwens François
Re-salut,

J'ai importer les tables au même endroit, au moins pour le test, et j'ai le
code de départ suivant :

INSERT INTO [arrêtés sub extra1] ( année, objet, [N° arrêté], FK_DG_extra,
montant, [N° d'ordre bénéficiaire] )

SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].Objet, [T-INSCRIPTION].[N°
arrêté], [T-INSCRIPTION].FK_DG_extra, [T-INSCRIPTION].Montant,
[T-INSCRIPTION].[N° d'ordre bénéficiaire]

FROM [T-INSCRIPTION]

WHERE ((([T-INSCRIPTION].Année)=[année ?]) AND (([T-INSCRIPTION].[N°
arrêté])=[arrêté ?]));


Ca fonctionne pour l'exportation de donnéese mais l'ajout du code pour
vérification de doublon provoque une erreur de syntaxe

INSERT INTO [arrêtés sub extra1] ( année, objet, [N° arrêté], FK_DG_extra,
montant, [N° d'ordre bénéficiaire] )
SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].Objet, [T-INSCRIPTION].[N°
arrêté], [T-INSCRIPTION].FK_DG_extra, [T-INSCRIPTION].Montant,
[T-INSCRIPTION].[N° d'ordre bénéficiaire]
FROM [T-INSCRIPTION]
WHERE ((([T-INSCRIPTION].Année)=[année ?]) AND (([T-INSCRIPTION].[N°
arrêté])=[arrêté ?]) AND (([T-INSCRIPTION].Année &" "&
[T-INSCRIPTION].Objet &" "& [T-INSCRIPTION].[N° arrêté] &" "&
[T-INSCRIPTION].FK_DG_extra &" "& [T-INSCRIPTION].Montant &" "&
[T-INSCRIPTION].[N° d'ordre bénéficiaire]) NOT IN (SELECT année &" "& objet
&" "& [N° arrêté] &" "& FK_DG_extra &" "& montant &" "& [N° d'ordre
bénéficiaire] FROM [arrêtés sub extra1]));


Je me demande si ce n'est pas qu'un problème de parenthèses (auquel je ne
comprends pas grand chose) dans lequel je me perds à force de tenter des
modifs...

Puis-je te, vous, demander un avis sur la question ?
Merci
Avatar
Eric
Bonjour,

Access et les parenthèses dans le SQL c'est la plaie.

Essaies juste pour le WHERE :

WHERE [T-INSCRIPTION].Année=[année ?] AND [T-INSCRIPTION].[N°
arrêté]=[arrêté ?] AND ([T-INSCRIPTION].Année & " " &
[T-INSCRIPTION].Objet & " " & [T-INSCRIPTION].[N° arrêté] & " " &
[T-INSCRIPTION].FK_DG_extra & " " & [T-INSCRIPTION].Montant & " " &
[T-INSCRIPTION].[N° d'ordre bénéficiaire] NOT IN (SELECT année & " " &
objet & " " & [N° arrêté] & " " & FK_DG_extra & " " & montant & " " &
[N° d'ordre bénéficiaire] FROM [arrêtés sub extra1]))



Re-salut,

J'ai importer les tables au même endroit, au moins pour le test, et j'ai le
code de départ suivant :

INSERT INTO [arrêtés sub extra1] ( année, objet, [N° arrêté], FK_DG_extra,
montant, [N° d'ordre bénéficiaire] )

SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].Objet, [T-INSCRIPTION].[N°
arrêté], [T-INSCRIPTION].FK_DG_extra, [T-INSCRIPTION].Montant,
[T-INSCRIPTION].[N° d'ordre bénéficiaire]

FROM [T-INSCRIPTION]

WHERE ((([T-INSCRIPTION].Année)=[année ?]) AND (([T-INSCRIPTION].[N°
arrêté])=[arrêté ?]));


Ca fonctionne pour l'exportation de donnéese mais l'ajout du code pour
vérification de doublon provoque une erreur de syntaxe

INSERT INTO [arrêtés sub extra1] ( année, objet, [N° arrêté], FK_DG_extra,
montant, [N° d'ordre bénéficiaire] )
SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].Objet, [T-INSCRIPTION].[N°
arrêté], [T-INSCRIPTION].FK_DG_extra, [T-INSCRIPTION].Montant,
[T-INSCRIPTION].[N° d'ordre bénéficiaire]
FROM [T-INSCRIPTION]
WHERE ((([T-INSCRIPTION].Année)=[année ?]) AND (([T-INSCRIPTION].[N°
arrêté])=[arrêté ?]) AND (([T-INSCRIPTION].Année &" "&
[T-INSCRIPTION].Objet &" "& [T-INSCRIPTION].[N° arrêté] &" "&
[T-INSCRIPTION].FK_DG_extra &" "& [T-INSCRIPTION].Montant &" "&
[T-INSCRIPTION].[N° d'ordre bénéficiaire]) NOT IN (SELECT année &" "& objet
&" "& [N° arrêté] &" "& FK_DG_extra &" "& montant &" "& [N° d'ordre
bénéficiaire] FROM [arrêtés sub extra1]));


Je me demande si ce n'est pas qu'un problème de parenthèses (auquel je ne
comprends pas grand chose) dans lequel je me perds à force de tenter des
modifs...

Puis-je te, vous, demander un avis sur la question ?
Merci




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Bauwens François
Ceci étant dit en supprimant pratiquement toutes les parenthèses il n'y a
plus de message d'erreur à l'enregistrement de la requête mais à son
exécution.
Donc avec le code
INSERT INTO [arrêtés sub extra1] ( année, objet, [N° arrêté], FK_DG_extra,
montant, [N° d'ordre bénéficiaire] )
SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].Objet, [T-INSCRIPTION].[N°
arrêté], [T-INSCRIPTION].FK_DG_extra, [T-INSCRIPTION].Montant,
[T-INSCRIPTION].[N° d'ordre bénéficiaire]
FROM [T-INSCRIPTION]
WHERE [T-INSCRIPTION].Année=[année ?] AND [T-INSCRIPTION].[N°
arrêté]=[arrêté ?] AND [T-INSCRIPTION].Année &" "& [T-INSCRIPTION].Objet &"
"& [T-INSCRIPTION].[N° arrêté] &" "& [T-INSCRIPTION].FK_DG_extra &" "&
[T-INSCRIPTION].Montant &" "& [T-INSCRIPTION].[N° d'ordre bénéficiaire] NOT
IN (SELECT année &" "& objet &" "& [N° arrêté] &" "& FK_DG_extra &" "&
montant &" "& [N° d'ordre bénéficiaire] FROM [arrêtés sub extra1]);

J'ai le message suivant lors de la demande d'execution :

Champ Memo, OLE ou hyperlink Object incorrect dans la sous-requête
'[T-inscription].Année...

Même en mettant le champ objet en memo dans les deux tables j'ai un message
d'erreur...
1 2