Bonjour

Je désire faire une "côture" qui consiterait ( pour le moment ), en une copie de la base de données.
Pour ce faire, j'ai repris certaines parties du code de sauvegarde automatique, code de la FAQ si j'ai bonne mémoire.

Voici ce que j'ai mis pour l'instant :

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
81
82
83
84
85
86
87
88
Public Function ClôtureDeFinDAnnée()
On Error GoTo ErreursCloture
 
If MsgBox("Bienvenue dans le module de clôture de fin d'année . Vous allez copier MON PROGRAMME - dans votre répertoire de sauvegarde, afin de garder une trace de l'année en cours. Attention : Certaines données seront effacées. Voulez-vous continuer ?", vbQuestion + vbYesNo, "MON PROGRAMME -Clôture de fin d'année ") = vbNo Then Exit Function
 
'Préparation à la copie de MON PROGRAMME -
 
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Parametres_Save", dbOpenDynaset) 'ouverture du recordset de la table Parametres_Save
 
 If rs.EOF = True Then
 MsgBox "Veuillez indiquer le répertoire dans lequel sauvegarder dans le formulaire ""Sauvegarde"" afin de définir le dossier dans lequel vous souhaitez stocker votre sauvegarde de clôture de fin d'année ...", vbExclamation + vbOKOnly, "MON PROGRAMME -Clôture de fin d'année "
 MsgBox "La clôture ne s'est pas faite. Veuillez réessayer ultérieurement !", vbCritical + vbOKOnly, "MON PROGRAMME -Clôture de fin d'année "
 
 Exit Function
 End If
 
'Module de copie
 
'Référence nécessaire : Microsoft Scripting Runtime
Dim fs As New Scripting.FileSystemObject
Set fs = CreateObject("Scripting.FileSystemObject")
DoCmd.Hourglass True
DoCmd.Echo True, "Clôture en cours...."
Set rs = CurrentDb.OpenRecordset("Parametres_Save", dbOpenDynaset)
 
Dim Destination As String 'répertoire de sauvegarde pour la clôture
Dim Source As String 'Répertoire où se trouve la base de donnée courante
Dim NomBase As String 'nom de la base frontale (base de donnée courante)
Dim NomCloture As String 'nom de sauvegarde de la base de donnée pour la clôture
Dim AAencours As String
 
rs.MoveFirst
 
Source = Left(CurrentDb.Name, InStr(CurrentDb.Name, Dir(CurrentDb.Name)) - 1)
NomBase = Left(Dir(CurrentDb.Name), Len(Dir(CurrentDb.Name)) - 4)
AAencours = DLookup("AAec", "Etablissement")
 
'Contrôle que le chemin indiqué dans RepSauvse termine bien par un \
If Right(rs!RepSauv.Value, 1) <> "\" Then
Destination = rs!RepSauv.Value & "\"
Else
Destination = rs!RepSauv.Value
End If
 
'Format de clôture : Nom de la base de donnée jj mm aa + indication de l'Année académique
NomCloture = NomBase + " - Clôture de fin de l'année " + AAencours + " - Date du " + CStr(Day(Now())) + " " + CStr(Month(Now())) + " " + CStr(Year(Now()))
 
If Dir(Destination, vbDirectory) = "" Then
 If MsgBox("Le chemin indiqué n'existe pas! Souhaitez-vous le créer?", vbQuestion + vbYesNo, "MON PROGRAMME -Clôture de fin d'année ") = vbYes Then
 fs.CreateFolder CStr(Destination) 'création du répertoire indiqué dans RepSauv
 GoTo Suite1
 Else
 MsgBox "La sauvegarde n'a pas pu être effectuée!", vbExclamation, "MON PROGRAMME -Clôture de fin d'année "
 rs.Close
 Set rs = Nothing
 Exit Function
 End If
Else
GoTo Suite1
End If
Suite1:
 
'Copie du fichier source vers le répertoire de destination
fs.CopyFile CStr(Source) + CStr(NomBase) + ".mdb", CStr(Destination) + CStr(NomCloture) + ".mdb", True
 
'Vérification que le fichier de sauvegarde existe bien dans le répertoire prévu avec le nom prévu:
If Dir(CStr(Destination) + CStr(NomCloture) + ".mdb", vbDirectory) = "" Then
MsgBox "La clôture ne s'est pas faite!", vbCritical, "MON PROGRAMME -Clôture de fin d'année "
Else
MsgBox "Clôture effectuée avec succès!", vbInformation, "MON PROGRAMME -Clôture de fin d'année "
End If
DoCmd.Echo True
DoCmd.Hourglass False
 
Exit Function
 
ErreursCloture:
Select Case Err.Number
Case 3044
MsgBox "Le chemin d'accès n'est pas valide. Assurez-vous que le nom du chemin d'accès est correct et qu'une connexion est établie avec le serveur sur lequel vous souhaitez effectuer la sauvegarde.", vbExclamation + vbOKOnly, "MON PROGRAMME -Tentative de sauvegarde"
Case 76
MsgBox "Chemin d'accès introuvable.", vbExclamation + vbOKOnly, "MON PROGRAMME -Tentative de sauvegarde"
Case Else
MsgBox "Une erreur non traitée s'est produite (" & Err.Number & "-" & Err.Description & ")", vbExclamation + vbOKOnly, "MON PROGRAMME -Tentative de sauvegarde"
End Select
 
End Function
Au moment d'exécuter le tout, message "erreur 94 : utilisation incorrecte de Null". Où serait mon erreur???

Merci de vos réponses