OVH Cloud OVH Cloud

Requêtte Ajout des enregistrements "Absents"

4 réponses
Avatar
Joël
Bonjour à toutes et à tous !

Soit une table Tbl1 et une table Tbl2 structurées exactement de la même
façon, mêmes nome de champs (Ch1, Ch2, etc...)

La table 1 contient x enregistrements.

La table 2 contient y enregistrements dont certains sont identiques à ceux
de la tables 1 (sur le champ clé primaire au moins)

La question est :

Comment ajouter à la Tbl1 les enregistrements de la Tbl2 manquant dans la
Tbl1 (sans supprimer les enregistrements de la Tbl1 il va sans dire, car Pb
de relation) ?

Faut-il les tester un par un ou existe-t-il une possibilité de requête
globale ?

Dans le même ordre d'idée, existe-t-il une requête qui permette de mettre à
jour tous les champs des enregistrements de la Tbl1 présent dans la Tbl2
(même clé primaire) ?

Cela fait deux questions, je sais ;-)))

Vous remerciant de vos réponses,

Bonne soirée...

Bien cordialement,

Joël
www.joelgarbe.fr

4 réponses

Avatar
Eric
Bonsoir,

Pour la 1ere question (à tester sur des copies de tables) une requête
dont le SQL serait:
INSERT INTO tbl1
SELECT *
FROM tbl2
WHERE LeChpClePrimaire Not In (select LeChpClePrimaire from tbl1);

Pour la 2ème je vais regarder ;-)

Bonjour à toutes et à tous !

Soit une table Tbl1 et une table Tbl2 structurées exactement de la même
façon, mêmes nome de champs (Ch1, Ch2, etc...)

La table 1 contient x enregistrements.

La table 2 contient y enregistrements dont certains sont identiques à ceux
de la tables 1 (sur le champ clé primaire au moins)

La question est :

Comment ajouter à la Tbl1 les enregistrements de la Tbl2 manquant dans la
Tbl1 (sans supprimer les enregistrements de la Tbl1 il va sans dire, car Pb
de relation) ?

Faut-il les tester un par un ou existe-t-il une possibilité de requête
globale ?

Dans le même ordre d'idée, existe-t-il une requête qui permette de mettre à
jour tous les champs des enregistrements de la Tbl1 présent dans la Tbl2
(même clé primaire) ?

Cela fait deux questions, je sais ;-)))

Vous remerciant de vos réponses,

Bonne soirée...

Bien cordialement,

Joël
www.joelgarbe.fr




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

Avatar
Joël
Merci ! en réfléchissant à la question de Ludovic (en attendant), j'ai
trouvé la réponse à ma propre question... Comme quoi ;-)))

Merci tout de même !

INSERT INTO Famille ( [Famille Graisse], Commentaire )
SELECT Famille1.[Famille Graisse], Famille1.Commentaire
FROM Famille RIGHT JOIN Famille1 ON Famille.[Famille Graisse] =
Famille1.[Famille Graisse]
WHERE ((([Famille]![Famille Graisse]=[Famille1]![Famille Graisse]) Is
Null));

et bonne soirée...

"Joël" a écrit dans le message de news:
45ad3845$0$5096$
Bonjour à toutes et à tous !

Soit une table Tbl1 et une table Tbl2 structurées exactement de la même
façon, mêmes nome de champs (Ch1, Ch2, etc...)

La table 1 contient x enregistrements.

La table 2 contient y enregistrements dont certains sont identiques à ceux
de la tables 1 (sur le champ clé primaire au moins)

La question est :

Comment ajouter à la Tbl1 les enregistrements de la Tbl2 manquant dans la
Tbl1 (sans supprimer les enregistrements de la Tbl1 il va sans dire, car
Pb de relation) ?

Faut-il les tester un par un ou existe-t-il une possibilité de requête
globale ?

Dans le même ordre d'idée, existe-t-il une requête qui permette de mettre
à jour tous les champs des enregistrements de la Tbl1 présent dans la Tbl2
(même clé primaire) ?

Cela fait deux questions, je sais ;-)))

Vous remerciant de vos réponses,

Bonne soirée...

Bien cordialement,

Joël
www.joelgarbe.fr



Avatar
Joël
Merci Eric,

Cela me paraît effectivement plus simple que ma chaine sql,

Je vais y regarder de plus près.

Bonne soirée...

Je suis sur une piste sérieuse pour la seconde question (et la troisième que
je n'avais pas posée ;-)))

Pour information, l'idée était de mettre à jour une table en fonction
d'élements récupérés dans la seconde (via une base externe).

J'y suis presque...

Merci beaucoup pour cette réflexion...

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

Bonsoir,

Pour la 1ere question (à tester sur des copies de tables) une requête dont
le SQL serait:
INSERT INTO tbl1
SELECT *
FROM tbl2
WHERE LeChpClePrimaire Not In (select LeChpClePrimaire from tbl1);

Pour la 2ème je vais regarder ;-)

Bonjour à toutes et à tous !

Soit une table Tbl1 et une table Tbl2 structurées exactement de la même
façon, mêmes nome de champs (Ch1, Ch2, etc...)

La table 1 contient x enregistrements.

La table 2 contient y enregistrements dont certains sont identiques à
ceux de la tables 1 (sur le champ clé primaire au moins)

La question est :

Comment ajouter à la Tbl1 les enregistrements de la Tbl2 manquant dans la
Tbl1 (sans supprimer les enregistrements de la Tbl1 il va sans dire, car
Pb de relation) ?

Faut-il les tester un par un ou existe-t-il une possibilité de requête
globale ?

Dans le même ordre d'idée, existe-t-il une requête qui permette de mettre
à jour tous les champs des enregistrements de la Tbl1 présent dans la
Tbl2 (même clé primaire) ?

Cela fait deux questions, je sais ;-)))

Vous remerciant de vos réponses,

Bonne soirée...

Bien cordialement,

Joël
www.joelgarbe.fr


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



Avatar
Joël
Re-Bonsoir Eric,

Pour te remercier de ton travaille, je te communique les chaines sql créées
à partir de tes informations pour répondre à mes besoins...

Case "Famille1"
RetourErr = "Family Insert"
sql = "INSERT INTO Famille "
sql = sql & "SELECT * "
sql = sql & "FROM Famille1 "
sql = sql & "WHERE (((Famille1.[Famille Graisse]) Not In (SELECT
[Famille Graisse] from [Famille])));"

DoCmd.RunSQL sql

RetourErr = "Family Update"
sql = "UPDATE Famille RIGHT JOIN Famille1 ON Famille.[Famille
Graisse] = Famille1.[Famille Graisse] SET Famille.Commentaire =
[Famille1]![Commentaire];"

DoCmd.RunSQL sql

RetourErr = "Family Delete"
sql = "DELETE * "
sql = sql & "FROM Famille "
sql = sql & "WHERE (((Famille.[Famille Graisse]) Not In (SELECT
[Famille Graisse] from [Famille1])));"

DoCmd.RunSQL sql

End Select

Bonne nuit,

Joël
"Eric" a écrit dans le message de news:

Bonsoir,

Pour la 1ere question (à tester sur des copies de tables) une requête dont
le SQL serait:
INSERT INTO tbl1
SELECT *
FROM tbl2
WHERE LeChpClePrimaire Not In (select LeChpClePrimaire from tbl1);

Pour la 2ème je vais regarder ;-)

Bonjour à toutes et à tous !

Soit une table Tbl1 et une table Tbl2 structurées exactement de la même
façon, mêmes nome de champs (Ch1, Ch2, etc...)

La table 1 contient x enregistrements.

La table 2 contient y enregistrements dont certains sont identiques à
ceux de la tables 1 (sur le champ clé primaire au moins)

La question est :

Comment ajouter à la Tbl1 les enregistrements de la Tbl2 manquant dans la
Tbl1 (sans supprimer les enregistrements de la Tbl1 il va sans dire, car
Pb de relation) ?

Faut-il les tester un par un ou existe-t-il une possibilité de requête
globale ?

Dans le même ordre d'idée, existe-t-il une requête qui permette de mettre
à jour tous les champs des enregistrements de la Tbl1 présent dans la
Tbl2 (même clé primaire) ?

Cela fait deux questions, je sais ;-)))

Vous remerciant de vos réponses,

Bonne soirée...

Bien cordialement,

Joël
www.joelgarbe.fr


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