Posez votre question Signaler

Compacter BD Access

loulou - Dernière réponse le 13 nov. 2007 à 10:57
Bonjour,
Voici ma situation:
J'ai une bd access 2003 dans laquelle je fais exécuter 2 macros.
Par contre, entre les 2, je dois compacter ma bd manuellement parce que sinon, la bd devient trop grosse. Ensuite, j'exécute la 2e macro. Est-ce qu'il une façon de compacter la bd à partir du code?

Je sais qu'il y a le code : bdengine.compacting ("nombd") mais je ne peux pas compacter la bd lorsqu'elle est ouverte. Est-ce qu'il a une manière de tout faire le processus automatiquement?
Merci d'avance pour votre aide!

loulou
Lire la suite 
Réponse
+7
moins plus
Salut, voici une solution automatique
- Une solution 'automatique' (à partir de MS-Access 2000) :
Menu Outils/Options, Onglet 'Général', cocher 'Compacter lors de la fermeture'.
Bonne chance.
plein de truc sur developpez.com
Merci
Ajouter un commentaire
Réponse
+5
moins plus
Salut loulou,
j'ai trouver ce code pour vous
http://bvrve.club.fr/Astuces_Michel/12accessvba.html
Compactez votre base de données :
Sub cmdCompacter_Click ()
sNomBase= "C:\Mes documents\Base.MDB"
sNomBaseTmp= "C:\Mes documents\BaseTmp.MDB"
'1. Compactage dans une nouvelle base
DBEngine.CompactDatabase sNomBase, sNomBaseTmp
'2. Suppression de la base originale
Kill sNomBase
'3. Renommer la base compactée avec le nom de la base originale
Name sNomBaseTmp As sNomBase
End Sub
bonne chance.
Merci
loulou- 15 août 2005 à 14:29
Merci beaucoup Mohammed,

J'ai utilisé le code et ça fonctionne à merveille.
Par contre, est-ce que tu sais si c'est possible de faire rouler une macro à partir d'une autre base de données.

Exemple : J'ai 2 macros dans la bd1 mais entre les deux, je dois compacter la base de données parce qu'elle devien énorme.

Avec ton code, je compacte la bd à partir d'une autre bd mais je dois faire rouler mes macros avant et après.

Est-ce que tu as une idée de la façon dont je pourrais faire ça!!

Merci encore!
Répondre
Ajouter un commentaire
Réponse
-1
moins plus
Bonjour,
J'ajoute que j'avais songé séparer ma base en deux pour doubler la marge de manoeuvre, même si je juge cette méthode particulièrement sale pour une base qui au départ ne pèse qu'une trentaine de Mo!

J'avais également songé à effectuer certaines opérations sur des jeux de données via des tableaux VBA et non plus par des requêtes histoire de limiter les entrées sorties sur le disque (ce qui, je crois, est la cause principale de l'augmentation de la taille d'un fichier access).

Ca aurait le mérite d'accélerer les traitements, ce qui ne serait pas plus mal. Mais je vous laisse imaginer l'usine à gaz que ca peut devenir!

Bref, j'attends vos remarques avec impatience. Non seulement pour la réussite de mon projet, mais surtout pour ma culture perso!

Merci
Ajouter un commentaire
Réponse
-2
moins plus
Bonjour,
Pour ma part, le problème est plus délicat puisque la seule execution d'une macro (qui enchaine une nombre important de requetes) fait que ma base dépasse la taille limite d'accès (2Go) avant même la fin de l'execution. Je ne peux même pas avoir mon résultat donc...
Ca va surement passer par de l'optimisation...

Quelqu'un a des pistes à proposer?

Merci d'avance
Ajouter un commentaire
Ce document intitulé «  Compacter BD Access  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

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.

Le fait d'être membre vous permet d'avoir des options supplémentaires.