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.
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.