Petit code pour "réparer" une base de donnée corompue, qui dit également si la base n'est pas réparable
Public Sub RepairBase(NomBase As String) Dim ErrLoop As Error Dim Message As String
On Error GoTo Err_Repair If Dir(ServeurPath & "BD" & NomBase & "1.mdb") <> "" Then Kill ServeurPath & "BD" & NomBase & "1.mdb" CopyFile ServeurPath, ServeurPath & "BD" & NomBase & ".mdb", NomBase & "1.mdb" DBEngine.RepairDatabase ServeurPath & "BD" & NomBase & "1.mdb" On Error GoTo 0 If Dir(ServeurPath & "BD" & NomBase & ".bak") <> "" Then Kill ServeurPath & "BD" & NomBase & ".bak" Name ServeurPath & "BD" & NomBase & ".mdb" As ServeurPath & "BD" & NomBase & ".bak" Name ServeurPath & "BD" & NomBase & "1.mdb" As ServeurPath & "BD" & NomBase & ".mdb" Exit Sub
Err_Repair: Message = "Messages pendant la Réparation" For Each ErrLoop In DBEngine.Errors Message = Message & vbCrLf & "Erreur " & ErrLoop.Number & " : " & ErrLoop.Description Next ErrLoop MsgBox Message, vbOKOnly + vbExclamation, "La base n'as pas été réparée" On Error GoTo 0 end sub
"Pierre Rivet" a écrit dans le message de news: 4a685597$0$23447$
Bonjour à tous,
Avant de sauvegarder une base de données, par une instruction de type
FileCopy CHEMINBASE,SAUVEGARDE
j'aimerais savoir s'il y a un moyen de vérifier que la base de données (en Access 2000) n'est pas corrompue.
Le risque est évidemment de recopier une base corrompue en une autre base corrompue.
Merci à l'avance,
Pierre
Petit code pour "réparer" une base de donnée corompue, qui dit également si
la base n'est pas réparable
Public Sub RepairBase(NomBase As String)
Dim ErrLoop As Error
Dim Message As String
On Error GoTo Err_Repair
If Dir(ServeurPath & "BD" & NomBase & "1.mdb") <> "" Then Kill
ServeurPath & "BD" & NomBase & "1.mdb"
CopyFile ServeurPath, ServeurPath & "BD" & NomBase & ".mdb", NomBase &
"1.mdb"
DBEngine.RepairDatabase ServeurPath & "BD" & NomBase & "1.mdb"
On Error GoTo 0
If Dir(ServeurPath & "BD" & NomBase & ".bak") <> "" Then Kill
ServeurPath & "BD" & NomBase & ".bak"
Name ServeurPath & "BD" & NomBase & ".mdb" As ServeurPath & "BD" &
NomBase & ".bak"
Name ServeurPath & "BD" & NomBase & "1.mdb" As ServeurPath & "BD" &
NomBase & ".mdb"
Exit Sub
Err_Repair:
Message = "Messages pendant la Réparation"
For Each ErrLoop In DBEngine.Errors
Message = Message & vbCrLf & "Erreur " & ErrLoop.Number & " : " &
ErrLoop.Description
Next ErrLoop
MsgBox Message, vbOKOnly + vbExclamation, "La base n'as pas été réparée"
On Error GoTo 0
end sub
"Pierre Rivet" <pierre.rivet@wanadoo.fr> a écrit dans le message de news:
4a685597$0$23447$ba4acef3@news.orange.fr...
Bonjour à tous,
Avant de sauvegarder une base de données, par une instruction de type
FileCopy CHEMINBASE,SAUVEGARDE
j'aimerais savoir s'il y a un moyen de vérifier que la base de données (en
Access 2000) n'est pas corrompue.
Le risque est évidemment de recopier une base corrompue en une autre base
corrompue.
Petit code pour "réparer" une base de donnée corompue, qui dit également si la base n'est pas réparable
Public Sub RepairBase(NomBase As String) Dim ErrLoop As Error Dim Message As String
On Error GoTo Err_Repair If Dir(ServeurPath & "BD" & NomBase & "1.mdb") <> "" Then Kill ServeurPath & "BD" & NomBase & "1.mdb" CopyFile ServeurPath, ServeurPath & "BD" & NomBase & ".mdb", NomBase & "1.mdb" DBEngine.RepairDatabase ServeurPath & "BD" & NomBase & "1.mdb" On Error GoTo 0 If Dir(ServeurPath & "BD" & NomBase & ".bak") <> "" Then Kill ServeurPath & "BD" & NomBase & ".bak" Name ServeurPath & "BD" & NomBase & ".mdb" As ServeurPath & "BD" & NomBase & ".bak" Name ServeurPath & "BD" & NomBase & "1.mdb" As ServeurPath & "BD" & NomBase & ".mdb" Exit Sub
Err_Repair: Message = "Messages pendant la Réparation" For Each ErrLoop In DBEngine.Errors Message = Message & vbCrLf & "Erreur " & ErrLoop.Number & " : " & ErrLoop.Description Next ErrLoop MsgBox Message, vbOKOnly + vbExclamation, "La base n'as pas été réparée" On Error GoTo 0 end sub
"Pierre Rivet" a écrit dans le message de news: 4a685597$0$23447$
Bonjour à tous,
Avant de sauvegarder une base de données, par une instruction de type
FileCopy CHEMINBASE,SAUVEGARDE
j'aimerais savoir s'il y a un moyen de vérifier que la base de données (en Access 2000) n'est pas corrompue.
Le risque est évidemment de recopier une base corrompue en une autre base corrompue.