13/02-2005 à 11:19Salut Camarade,
1) Tu crées une nouvelle base .mdb et tu colles dans un nouveau module le code suivant :
Option Compare Database
Option Explicit
' --------------------------------------------------
' REPARATION ET COMPACTAGE DE BASE DE DONNEES
' --------------------------------------------------
' Entrée : strBase <- Chemin d'accès à la base de données
' strTemp <- Nom de la base de données temporaire
'
Function RepairCompact(ByVal strBase As String, ByVal strTemp As String) As Boolean
On Error GoTo RCErr
' Détruire la base temporaire si elle existe
If Dir$(strTemp) <> "" Then Kill strTemp
' Réparer et compacter la base de données
DBEngine.RepairDatabase strBase
DBEngine.CompactDatabase strBase, strTemp
' Si tout a marché, détruire la base d'origine et renommer la base temporaire
Kill strBase
Name strTemp As strBase
RepairCompact = True
Exit Function
RCErr:
MsgBox "L'erreur suivante s'est produite : " & Err.Description, vbCritical, "Compactage"
RepairCompact = False
Exit Function
End Function
2) Tu crées une macro Autoexec ou tu lui passes les actions suivantes :
- AfficherBarreOutils, Base de données, Non
- ExécuterCode. Dans le nom de la fonction tu tapes
RepairCompact ("C:\C5\Fintiers.mdb", "C:\C5\Fintiers2.mdb")
où C5 est le dossier contenant ta base à compacter (ici fintiers.mdb). Fintiers2.mdb étant le nom de la base temporaire.
----------
TIF (adepte de l'article 22)