Bonjour,
J'ai une base avec application sur chaque poste et base avec les tables sur le reseau, et je voudrais qu'elles se compactent automatiquement si possible. Pour l'application, ce serait facile: "Compact on close" mais je ne pense pas que ce soit tres necessaire vu que ca ne va pas changer une fois que ce sera installe donc pas de raisons de compacter je pense! (mais dites moi si je me trompe)
Pour les tables, si je fais Compact on close, deja je ne pense pas que ca marche (vu que quand on appelle les tables liees a partir de l'application on n'ouvre pas vraiment la base, si?) mais surtout de toute maniere ca me change les droits du fichier et ca enleve les droits d'ecriture aux utilisateurs du reseau... pas tres interessant donc!
J'ai essaye le code sur la FAQ:
Je mets un bouton Compacter sur le formulaire menu principal de mon application et ca compacte (meme si un autre utilisateur utilise la base au meme moment!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub cmdCompacter_Click () sNomBase= "C:\Mes documents\Base.MDB" sNomBaseTmp= "C:\Mes documents\BaseTmp.MDB" DBEngine.CompactDatabase sNomBase, sNomBaseTmp '1. Compactage dans une nouvelle base Kill sNomBase '2. Suppression de la base originale Name sNomBaseTmp As sNomBase '3. Renommer la base compactée avec le nom de la base originale End Sub), mais la aussi ca enleve les droits d'ecriture aux utilisateurs en reseau du coup... Quelqu'un sait comment remettre les droits comme avant sur le fichier? (j'ai pourtant mis tous les droits aux utilisateurs en reseau sur le dossier contenant le fichier)
Partager