Compacter une base de données access

Soyez le premier à donner votre avis sur cette source.

Vue 8 957 fois - Téléchargée 1 519 fois

Description

Ce petit code permet de compacter une base de données access.
Pratique quand on supprime des enregistrements car la taille du fichier ne diminue pas si on ne fait pas de compactage (sacré Bill !).

Conclusion :


Pour que le programme fonctionne, il faut ajouter les références suivantes :
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Objects 2.1 Library
Microsoft Scripting Runtime

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

VicoLaChips2
Messages postés
439
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
1 -
Bonjour -:)
Je pense qu'il est préférable d'utiliser msjro.dll(88 KB) plutôt que dao dans la mesure ou tu as ado en référence.... dao 3.6(545 KO) pèse une tonne ! ça fait lourd pour compacter une base -;)

@+, vic sans ça 8 pour le sujet -:)
cs_tolt
Messages postés
270
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
4 avril 2019
-
Bonjour,

Il ne parche pas avec Vista, pourquoi ? Avez-vous une solution à cela ?
XP sans problème, Vista erreur de compactage...
Merci d'avance.
Cissouw
Messages postés
2
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
7 mars 2011
-
Bonjour tout le monde !

J'ai un gros souci concernant le compactage de ma base de données !

Pourriez vous m'aider si ça ne vous dérange pas ?

Voici mon code :

Option Compare Database

Private Sub Commande1_Click()

Dim Outil_COCO As String
Dim Tmp As String

'Déterminer le chemin d'accès au dossier parent
path = Access.CurrentProject.path()
'Déterminer le chemin d'accès de "outils COCO.accdb"
Outil_COCO = path & "\Outil COCO.accdb"
'Déterminer le chemin d'accès de "outils Tmp.accdb"
Tmp = path & "\Outil Tmp.accdb"

'Application.NewCurrentDatabase Path & "\Tmp.accdb", acNewDatabaseFormatUserDefault
Call RepairDatabase(Outil_COCO, Tmp)


End Sub

'fonction avec deux valeurs d'entrées : le chemin d'accès et le nom du fichier source ainsi que du fichier destinataire
Function RepairDatabase(strSource As String, strDestination As String) As Boolean

'piège d'erreur
'On Error GoTo Erreur

'Compacte et répare le projet Microsoft Access en utilisant les deux valeurs d'entrée de la fonction
RepairDatabase = Application.CompactRepair(SourceFile:=strSource, DestinationFile:=strDestination)

'Réinitialiser le piège d'erreur et quitter la fonction
'On Error GoTo 0
'Exit Function

' Returne faux en cas d'erreur
'Erreur: RepairDatabase = False

End Function


Access m'envoie un message d'erreur me disant :

"Erreur d'exécution '7866':

Microsoft Office Access n'a pas pu ouvrir la base de données, parce que celle-ci est manquante, a été ouverte par un autre utilisateur en mode exclusif ou n'est pas un fichier ADP."

Je vous remercie d'avance de l'aide que vous pourrez me fournir !
Cissouw
Messages postés
2
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
7 mars 2011
-
J'ai mis le piège d'erreur en commentaire afin de voir quelle était l'erreur.

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.