Bonjour, mon problème ici est une requête suppression qui bute sur un message du type "Erreur: spécifiez la table des enregistrements à supprimer"

Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
SQL_Def = "SELECT Test_Alerte_Z2N_2.[Date Défaut]"
SQL_Def = SQL_Def & " FROM Test_Alerte_Z2N_2"
SQL_Def = SQL_Def & " GROUP BY Test_Alerte_Z2N_2.[Date Défaut]"
SQL_Def = SQL_Def & " ORDER BY Test_Alerte_Z2N_2.[Date Défaut] DESC"
Set rs_SQL_Def = CurrentDb.OpenRecordset(SQL_Def)
 
If Not rs_SQL_Def.EOF Then
    rs_SQL_Def.MoveLast
    Z = rs_SQL_Def.RecordCount
 
    rs_SQL_Def.MoveFirst
 
    Do While Not rs_SQL_Def.EOF
 
        Date_ = rs_SQL_Def("Date Défaut").Value
 
        SQL_Def2 = "SELECT Test_alerte_Z2N_2.[Code Défaut], Test_alerte_Z2N_2.[Première heure défaut]"
        SQL_Def2 = SQL_Def2 & " FROM Test_Alerte_Z2N_2"
        SQL_Def2 = SQL_Def2 & " WHERE ((Test_alerte_Z2N_2.[Code Défaut] = '" & "AC-109" & "') OR (Test_alerte_Z2N_2.[Code Défaut] = '" & "AC-102" & "')) AND Test_Alerte_Z2N_2.[Date Défaut] = #" & Date_ & "# "
        SQL_Def2 = SQL_Def2 & " GROUP BY Test_alerte_Z2N_2.[Code Défaut], Test_alerte_Z2N_2.[Première heure défaut], Test_Alerte_Z2N_2.[Date Défaut]"
        SQL_Def2 = SQL_Def2 & " ORDER BY Test_alerte_Z2N_2.[Première heure défaut] DESC;"
        Set rs_SQL_Def2 = CurrentDb.OpenRecordset(SQL_Def2)
 
        If Not rs_SQL_Def2.EOF Then
        rs_SQL_Def2.MoveLast
        y = rs_SQL_Def2.RecordCount
 
        If y >= 2 Then
 
        rs_SQL_Def2.MoveFirst
        Do While Not rs_SQL_Def2.EOF
 
            Code1 = rs_SQL_Def2("Code Défaut").Value
            Heure1 = rs_SQL_Def2("Première heure Défaut").Value
 
 
            DoCmd.RunSQL "INSERT INTO Test_Alerte_Z2N_2_Temp ([Code défaut],[Première Heure Défaut]) Values ('" & rs_SQL_Def2("Code Défaut").Value & "',#" & rs_SQL_Def2("Première heure Défaut").Value & "#)"
 
 
            rs_SQL_Def2.MoveNext
 
            Code2 = rs_SQL_Def2("Code Défaut").Value
            Heure2 = rs_SQL_Def2("Première heure Défaut").Value
 
 
 
            DoCmd.RunSQL "INSERT INTO Test_Alerte_Z2N_2_Temp ([Code défaut],[Première Heure Défaut]) Values ('" & rs_SQL_Def2("Code Défaut").Value & "',#" & rs_SQL_Def2("Première heure Défaut").Value & "#)"
 
 
                If Code1 <> Code2 Then
 
                    HeureDiff = DateDiff("s", Heure1, Heure2)
 
                    If HeureDiff < 5 Then 'Durée à déterminer en secondes
 
                        DoCmd.RunSQL "DELETE FROM Test_Alerte_Z2N_2 INNER JOIN Test_Alerte_Z2N_2_Temp ON Test_Alerte_Z2N_2.[Code Défaut] = Test_Alerte_Z2N_2_Temp.[Code Défaut] WHERE ((Test_Alerte_Z2N_2_Temp.[Code Défaut] = Test_Alerte_Z2N_2.[Code Défaut]) AND (Test_Alerte_Z2N_2_Temp.[Première heure Défaut] = Test_Alerte_Z2N_2.[Première heure Défaut]))"
 
                    Else: DoCmd.RunSQL "DELETE FROM Test_Alerte_Z2N_2 INNER JOIN Test_Alerte_Z2N_2_Temp ON Test_Alerte_Z2N_2.[Code Défaut] = Test_Alerte_Z2N_2_Temp.[Code Défaut] WHERE ((Test_Alerte_Z2N_2_Temp.[Code Défaut] = Test_Alerte_Z2N_2.[Code Défaut]) AND (Test_Alerte_Z2N_2_Temp.[Code Défaut] = '" & AC - 102 & "') AND (Test_Alerte_Z2N_2_Temp.[Première heure Défaut] = Test_Alerte_Z2N_2.[Première heure Défaut]))"
                    End If
 
                ElseIf Code1 = "AC-102" And Code2 = "AC-102" Then
                    DoCmd.RunSQL "DELETE FROM Test_Alerte_Z2N_2 INNER JOIN Test_Alerte_Z2N_2_Temp ON Test_Alerte_Z2N_2.[Code Défaut] = Test_Alerte_Z2N_2_Temp.[Code Défaut] WHERE ((Test_Alerte_Z2N_2_Temp.[Code Défaut] = Test_Alerte_Z2N_2.[Code Défaut]) AND (Test_Alerte_Z2N_2_Temp.[Première heure Défaut] = Test_Alerte_Z2N_2.[Première heure Défaut]))"
                    Else
                    End If
 
            DoCmd.RunSQL "DELETE * FROM Test_Alerte_Z2N_2_Temp"
 
            rs_SQL_Def2.MoveNext
            Loop
 
            Else
            End If
        Else
        End If
 
    rs_SQL_Def.MoveNext
    Loop
 
Else
End If

Et la requête suppression qui pose soucis (et je pense que toute poseront le même soucis vu qu'elles sont écrites de la même manière):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
DoCmd.RunSQL "DELETE FROM Test_Alerte_Z2N_2 INNER JOIN Test_Alerte_Z2N_2_Temp ON Test_Alerte_Z2N_2.[Code Défaut] = Test_Alerte_Z2N_2_Temp.[Code Défaut] WHERE ((Test_Alerte_Z2N_2_Temp.[Code Défaut] = Test_Alerte_Z2N_2.[Code Défaut]) AND (Test_Alerte_Z2N_2_Temp.[Première heure Défaut] = Test_Alerte_Z2N_2.[Première heure Défaut]))"


En fouinant un peu, je tombe là dessus:
https://support.microsoft.com/fr-fr/kb/467066


Le problème c'est que derrière, j'ai des critères particuliers quoi, comme vous avez pu le voir, et ce lien, me dit de passer par le "*" de ma table .... seulement derrière, on peut pas appliquer de critères .... Alors, comment dois je m'y prendre pour supprimer les critères de la Table A en fonction de critères liés entre la Table A et la Table B ?

Merci d'avance !