MS Access 2010 se compacte à la fermeture. Comment empêcher?

5

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é compactdans 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.

  1. nouveau DB vierge
  2. définir tous les liens de table
  3. importer des objets non-table

Si Beemsje 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).

Smandoli
la source
L'option est-elle définie comme indiqué ici ?
harrymc
Non, comme indiqué, "compact on close" n'est pas coché.
Smandoli
Vous utilisez VBA. Que se passe-t-il si: (1) vous exécutez sans VBA, (2) vous exécutez une macro à la sortie qui le fait Call SetOption("Auto Compact",False).
harrymc
Vous avez dit qu'il fonctionne sur un réseau ... le front fonctionne-t-il localement? Est-ce que la version du back-end est la même que celle que vous utilisez localement
CharlieRB
3
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

Réponses:

0

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

Smandoli
la source