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
7 mars 2011 à 18:36
7 mars 2011 à 18:23
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 !
21 sept. 2007 à 08:05
Il ne parche pas avec Vista, pourquoi ? Avez-vous une solution à cela ?
XP sans problème, Vista erreur de compactage...
Merci d'avance.
30 oct. 2002 à 19:34
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 -:)
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.