Réparer compacter access sans shell


Contenu du snippet

J'ai vu sur le forum que certaines personnes voulaient réparer compacter une base ACCESS sans avoir ACCESS d'installer sur le poste afin d'éviter de lancer une commande shell. Alors voilà ce petit bout de code devrait faire des heureux. Il n'est pas méchant dutout et marche à tout les coups hihi.
Copier coller le code ci-dessous dans une form et lancer votre appli.

Attention :
Pour ACCESS 97 utiliser la référence Microsoft DAO 3.51, La méthode RepairDatabase et CompactDatabase marcheront correctement.

Pour ACCESS 2000 utiliser la référence Microsoft DAO 3.6, et supprimer la méthode RepairDatabase (car la fonction n'existe plus sous 2000 et ces idiots ont laissé la méthode). En fait la méthode CompactDatabase fait les 2 (répare et compacte)

Source / Exemple :


Private Sub Form_Activate()

On Error Resume Next

    Screen.MousePointer = vbHourglass
    Me.Label1.Caption = "REPARATION"

    DoEvents
    RepairDatabase (App.Path & "\NEW.MDB")

    Me.Label1.Caption = "COMPACTAGE"
    If Len(Dir$(App.Path & "\OLD.MDB")) > 0 Then Kill App.Path & "\OLD.MDB"
    CompactDatabase App.Path & "\NEW.MDB", App.Path & "\OLD.MDB", dbLangGeneral
    Kill App.Path & "\NEW.MDB"
    Filecopy App.Path & "\OLD.MDB" , App.Path & "\NEW.MDB"
    Screen.MousePointer = vbDefault

    Unload Me

End Sub

Conclusion :


En fait la méthode RepairDatabase et CompactDatabase sont des méthodes inclus dans VB, mais bon faut le savoir !!!
Important :
Pour éviter le plantage, renommer dans le code la base access et vous aurez besoin d'un label histoire d'afficher ce ke le prog est en train de faire lol.

A voir également

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.