-
Compacter
Comment faire pour compacter une base en VBA, sans la fermer totalement ?
Dans mon cas, je dois mettre à jour la base à partir d'autres bases, donc, parfois, j'ai besoin de tout effacer et de tout relancer pour tester les nouvelles requête d'ajout et de mise à jour de ma base.
Actuellement mon controle fonctionne ainsi :
- Effacement de toutes les données
- Fermeture de la base qui implique le compactage
Moi ce que je voudrai, c'est compacter puis qu'elle se réouvre automatiquement, comme quand je fais :
Outils/Utilitaires Base de données/Compacter la base
Là j'utilise
Code:
DBEngine.CompactDatabase PRME, Temp
Où PRME est la base actuelle et Temp la base temporaire, mais ça ne marche pas car la base PRME devrait être fermée...
Comment faire ?
-
salut,
tu aurais pu faire une recherche dans la FAQ !
j'ai fait une petite recherche pour toi :arrow: http://access.developpez.com/faq/?re...acter+une+base
-
Ben écoute, je te remercie
J'avais déjà cherché dans la faq, mais j'avais pas trouvé, peut-être pas les bons mots-clés... cela date un peu néanmoins
Désolé alors pour ce post superflu
Je deleste
Edit : je deleste pas tout de suite car en fait, j'avais bien trouvé ça, mais ça n'avait pas marché... Donc, je recommence et je vois ce que ça fait
-
Donc, c'est bien ça....
Le truc simple en VBA, c'est pas pour la base en cours... Après, c'est la page en anglais (où je comprend peu de chose, honte à moi :oops:), mais j'ai compris qu'il fallait rajouter un truc supplémentaire à la bibliothèque, ce que je ne veux pas faire, j'ai peur que ça pose des problèmes de transport de base qui va d'abord être installé chez quelqu'un d'autre, avant d'être mise sur un serveur Web...
Existe-t-il un moyen en VBA de faire la même manip ?
-
J'ai eu le même problème : Mise à jour d'une quantité importante de données (import, delete, insert, update) et j'avais besoin de compacter ma base en cours de traitement.
Le seul moyen que j'ai trouvé, c'est de piloter ma base depuis une autre base.
La base Pilotage ouvre la base Données, lance les traitements dans la base Données, ferme la base Données, compacte, rouvre la base Données, lance les traitements ... (4h de traitement au total)
Ca fonctionne nickel.