3 réponses
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
Ambassadeur
1 557
16 mai 2017 à 20:45
16 mai 2017 à 20:45
bonsoir, pourquoi ne pas remplacer de temps en temps tout le contenu de la table 2 par les enregistrements de la table 1 ayant un ID de 2.
sinon, tu pourrais, en pus de ta requête ajout, avoir une requête qui supprime de la table 2 les enregistrements n'ayant pas de correspondant en table 1.
qu'en penses-tu?
sinon, tu pourrais, en pus de ta requête ajout, avoir une requête qui supprime de la table 2 les enregistrements n'ayant pas de correspondant en table 1.
qu'en penses-tu?
Bonjour yg_be,
C'est plutôt la deuxième proposition qui me conviendrait.
"avoir une requête qui supprime de la table 2 les enregistrements n'ayant pas de correspondant en table 1. "
J'ai alors le code suivant
Private Sub Test_Click()
Dim SQL As String
SQL = "DELETE * FROM [tab2] WHERE ID Not IN (SELECT ID FROM tab1)"
DoCmd.RunSQL SQL
End Sub
çà marche mais il me supprime tous les enregistrements qu'ils ont pas en commun. Comment lui dire de supprimer seulement les enregistrements de la tab2 où ID=2 et qui n'ont pas de correspondance en tab1.
Je veux mettre "Where ID =2 Not IN (SELECT ID FROM tab1)"
mais çà ne marche pas.
Merci
C'est plutôt la deuxième proposition qui me conviendrait.
"avoir une requête qui supprime de la table 2 les enregistrements n'ayant pas de correspondant en table 1. "
J'ai alors le code suivant
Private Sub Test_Click()
Dim SQL As String
SQL = "DELETE * FROM [tab2] WHERE ID Not IN (SELECT ID FROM tab1)"
DoCmd.RunSQL SQL
End Sub
çà marche mais il me supprime tous les enregistrements qu'ils ont pas en commun. Comment lui dire de supprimer seulement les enregistrements de la tab2 où ID=2 et qui n'ont pas de correspondance en tab1.
Je veux mettre "Where ID =2 Not IN (SELECT ID FROM tab1)"
mais çà ne marche pas.
Merci
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
17 mai 2017 à 20:20
17 mai 2017 à 20:20
quel est le champ qui permet de différencier chaque enregistrement, et qui fait le lien entre les deux tables? cela ne peut pas être seulement ID!
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
>
Juliaz
18 mai 2017 à 14:00
18 mai 2017 à 14:00
alors je suggère:
ou
les deux devraient donner le même résultat, l'un étant peut-être plus performant que l'autre.
DELETE * FROM [tab2] WHERE ID = 2 AND Immatriculation Not IN (SELECT Immatriculation FROM tab1 WHERE ID = 2)
ou
DELETE * FROM [tab2] WHERE ID = 2 AND Immatriculation Not IN (SELECT Immatriculation FROM tab1 )
les deux devraient donner le même résultat, l'un étant peut-être plus performant que l'autre.
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
18 mai 2017 à 14:06
18 mai 2017 à 14:06
en fait, je ne comprends pas comment tu peux avoir dans la table2 des enregistrements ayant un id différent de 2. peux-tu expliquer?
Merci yg_be pour ton retour.
La table 2 est à la base un export des données issues de notre intranet.Ces données regroupent différents ID.Seul l'ID = 2 y est absent car ne faisant pas partie des id pris en compte dans notre export d'intranet.
Avec ma requête ajout je cherchais à rajouter ces ID qui sont égales à 2 pour compléter la table 2.
Le rajout se faisait très bien sauf qu'il arrive que certains données de la table 1 soit supprimées notamment les données avec l'ID =2.Et comme , je les avais rajoutées à ma table 2,je souhaitais lorsque l'ID =2 n'existe plus dans tab1 que çà disparaisse aussi dans la tab2.
C'était celà ma problématique.
Je peux reformuler si besoin.
J’ai testé ton code et ça marche très bien !!
C’est ce dont j’avais besoin !!
Merci encore
La table 2 est à la base un export des données issues de notre intranet.Ces données regroupent différents ID.Seul l'ID = 2 y est absent car ne faisant pas partie des id pris en compte dans notre export d'intranet.
Avec ma requête ajout je cherchais à rajouter ces ID qui sont égales à 2 pour compléter la table 2.
Le rajout se faisait très bien sauf qu'il arrive que certains données de la table 1 soit supprimées notamment les données avec l'ID =2.Et comme , je les avais rajoutées à ma table 2,je souhaitais lorsque l'ID =2 n'existe plus dans tab1 que çà disparaisse aussi dans la tab2.
C'était celà ma problématique.
Je peux reformuler si besoin.
J’ai testé ton code et ça marche très bien !!
C’est ce dont j’avais besoin !!
Merci encore
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
21 mai 2017 à 11:47
21 mai 2017 à 11:47
c'est très clair, Juliaz. n'étant pas certain d'avoir bien compris, je craignais de t'avoir mal conseillé.