J'ai une application Access 2010 qui s'exécute sur un réseau occupé (front / back ends distincts, même version d'Access). Dernièrement, lorsque je le ferme, l'utilitaire de compactage s'exécute. C'est comme si l'option était cochée pour "compact à la fermeture". Mais cette option n'est pas cochée, ni sur la base de données principale.
J'ai hérité de cette application et l'affichage de ce comportement n'a commencé que récemment. Je connais le code VBA et il n’existe aucune routine compacte (j’ai cherché compact
dans les modules pour en être sûr). Le compact se produit même si je cours Call SetOption("Auto Compact",False)
lors du déchargement du formulaire principal. Le compact se produit également si je désactive VBA en ne cliquant pas sur "Activer le contenu".
J'ai entendu dire que vous pouvez lancer Access avec des paramètres de ligne de commande pour obtenir ce comportement, mais ce n'est pas le cas ici.
J'ai également exécuté la maintenance de décompilation / réparation, mais aucun changement.
Pourquoi la base de données se compresse-t-elle à la fermeture?
METTRE À JOUR
Beems
avait la bonne réponse, qui était de remédier à une corruption subtile du fichier.
- nouveau DB vierge
- définir tous les liens de table
- importer des objets non-table
Si Beems
je vous présente ce conseil utile comme réponse, je l'accepterai, sinon je posterai la réponse et transmettrai au wiki de la communauté (une sorte de courtoisie dans laquelle je ne collecte pas de crédit qui n'est pas le mien).
la source
Call SetOption("Auto Compact",False)
.Réponses:
Je crois que l'option "compact à la fermeture" est définie par base de données et que le paramètre est stocké dans le fichier MDB / ACCDB lui-même. Je soupçonne que le paramètre est corrompu (et comme il n'est pas stocké dans le registre ou dans un fichier de configuration séparé, nous ne pouvons pas le réinitialiser à ma connaissance). Comme le fichier est téléchargé à partir du serveur à chaque exécution, ma suggestion n'est pas idéale: exportez les tables vers une base de données dupliquée, mettez à jour VBA pour utiliser le nouveau fichier, puis réessayez. - Beems 6 octobre à 15h54
la source