Bonjour,
Je voudrais archiver les enregistrements d'une table dans une table archive d'une année entrée par un utilisateur.
J'arrive à supprimer les enregistrements de l'année en question mais l'archivage se fait sur toutes les années.
Est ce que vous pourriez me dire quelle méthode utiliser parce que je ne vois pas comment faire ?
Juste une méthode sera suffisante, je peux chercher c'est pas un problème.
Voici mon code :
Merci beaucoup...
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 Sub Annuelle() 'on veut créer une macro qui archive tous les ans les enregistrements Dim a%, année% 'l'utilisateur entre l'année qu'il veut archiver a% = InputBox("De quelle année sont les données que vous souhaitez exporter ?", "Choix de l'année", "écrire ici") 'on récupère l'année en cours année% = Year(Now) 'on vérifie si l'année entrée est bien possible If ((a% < 1970) Or (a% > année%)) Then MsgBox ("Ce n'est pas possible !!!") 'l'utilisateur ne peut pas archiver tant que l'année en cours n'est pas finie ElseIf (a% = année%) Then MsgBox ("L'année " & année% & " n'est pas encore finie!!!") Else 'on copie la table dans Access DoCmd.CopyObject "", "ARRET_Archive_" & a%, acTable, "ARRET2" 'on veut supprimer les enregistrements de l'année entrée par l'utilisateur 'on définit la base de données Dim db As DAO.Database Set db = OpenDatabase("S:\DI.VE.QS\DIVE_EX_QDS\access\arret_mensuel.mdb") 'on exécute la requète SQL db.Execute "DELETE FROM ARRET2 WHERE Année = " & a% & ";" Debug.Print "Records affected = " & db.RecordsAffected 'on ferme la base de données db.Close End If End Sub
Partager