Compacter et reparer une base de donnée

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 464 fois - Téléchargée 34 fois

Contenu du snippet

2 Procédures souvent demander en Forum....

Source / Exemple :


Public Sub Compactage(Fichier As String)

Dim fs As Object
Dim db As New DBEngine

MousePointer = 11

Set fs = CreateObject("Scripting.FileSystemObject")

If Not (fs.FileExists(Fichier)) Then ' Verification de la Présence du Fichier
    MsgBox "Base Introuvable à l'endroit spécifié", vbCritical + vbOKOnly, "Erreur"
    Exit Sub
End If

If fs.FileExists(Mid(Fichier, 1, Len(Fichier) - 4) & ".ldb") Then ' Verification de la Présence du Fichier .ldb
    MsgBox "La Base est déja Ouverte, Impossible de Poursuivre", vbCritical + vbOKOnly, "Erreur"
    Exit Sub
End If

db.CompactDatabase Fichier, "C:\Tempo.mdb" ' Compactage de la Base dans une Base Tempo

fs.DeleteFile Fichier ' Suppression de la Base
fs.MoveFile "C:/Tempo.mdb", Fichier ' Renommage de la Base Tempo

MsgBox "La Base de Donnée : " & Fichier & Chr$(13) & " est Compactée.", vbInformation, "Compactage"

MousePointer = 1

End Sub

Public Sub Reparation(Fichier As String)

Dim fs As Object
Dim db As New DBEngine
Dim errLoop As Error

On Error GoTo Err_Reparation

MousePointer = 11

Set fs = CreateObject("Scripting.FileSystemObject")

If Not (fs.FileExists(Fichier)) Then ' Verification de la Présence du Fichier
    MsgBox "Base Introuvable à l'endroit spécifié", vbCritical + vbOKOnly, "Erreur"
    Exit Sub
End If

db.RepairDatabase Fichier

MsgBox "La Base de Donnée : " & Fichier & Chr$(13) & " est Réparée.", vbInformation, "Réparation"

MousePointer = 1

On Error GoTo 0

Exit Sub

Err_Reparation:

   For Each errLoop In db.Errors
      MsgBox "Numéro d'erreur : " & errLoop.Number & _
         vbCr & errLoop.Description
   Next errLoop

End Sub

Conclusion :


Pour Appeller les Procédures :

Call Compactage("c:/Base.mdb")

Call Reparation("c:/Base.mdb")

A voir également

Ajouter un commentaire

Commentaires

cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
ceci est a partir de VB. Si vous vous trouver en Access et vous voulez compacter la bse de donnée où vous êtes, j'ai fait une source là dessus (faut utiliser un logiciel de compactage lorsqu'on ferme l'application Access
Scalpweb
Messages postés
1468
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
-
Le code est bon.
Au fait Italia : je préférais ta photo d'avant ;-)
cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
j'avou, susi d'accord avec Scalpweb ont dirait que ça viens d'un dessin annimé ta photo
Sirocooo
Messages postés
412
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
7 avril 2008
1 -
Pour ma part je n'utilise plus cette méthode car parfois la réparation ne marche pas.

J'utilise maintenant l'outil JETCOMP.exe de microsoft (gratuit)

Soit avec l'interface utilisateur soit en pasant des arguments en ligne de commande ( JETCOMP.exe -src ... -dest... -w...
Vous trouverez la doc sur le site de microsoft.

C'est tellemet efficace que je l'ai intégré dans nos applications commerciales.


A vous de voir...
cs_ITALIA
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8 -
--> Pour ScalpWeb et Dragon ....je rechange mon avatar...C vrai il était mieux avant....

A bientôt sur le Forum.....Bonne Prog...
Merci des commentaires...mais Merci de la Noter

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.