Astuce vba access xp : forcer le /decompile

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 998 fois - Téléchargée 26 fois

Contenu du snippet

Dans les options de la ligne de commande, /decompile permet de décompiler une base Access, c'est-à-dire retirer tout le code binaire. Cela sert à compacter (mais compacter à fond) la base en vue par exemple d'un archivage, mais surtout à retirer le code binaire "mort", qui n'est plus du tout appelé par le code source (hé oui, ça à l'air bête de le conserver, mais pourtant c'est bien ce qui arrive avec toutes les versions d'Access : si ça se trouve, vous pouvez alléger votre base de quelques Mo !). Le problème, c'est que le /decompile ne marche plus parfois avec Access XP. Solution : ré-importer toutes les tables, requêtes, formulaires, états et modules dans une nouvelle base, et voilà !

Conclusion :


Petits inconvénients : on perd la mise en forme des relations, ainsi que celle des champs des tables (largeur d'affichage), mais c'est pas très grave. Il faut aussi refaire la liste des références VBA, mais tant qu'à faire un peu de ménage, ce n'est pas une mauvaise chose.

Comment savoir si le /decompile a bien fonctionné ? le code source doit être dans un état non-compilé, il suffit de regarder si l'icone tout compiler est activé. Si vous compactez juste après la décompilation, vous obtenez le top du compactage. Toutefois, si vous distribuez une base à un client, il vaut quand même mieux qu'elle soit dans un état tout compilé. Si votre base est au format 2000, vous pouvez tentez une décompilation sur un poste où Access 2000 est installé, au cas où Access XP ne décompilerait pas.

Explication du /decompile en français :
www.trigeminal.com/usenet/usenet004.asp

Obtenir les commandes /compact et /decompile en menus contextuels dans l'explorateur (très pratique, mais attention à l'endroit où est installé Access et sa version, changer éventuellement les chemins avant de fusionner le fichier .reg) :
www.mvps.org/access/modules/mdl0039.htm

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Essaie la réparation de la base, sinon il faut reprendre une sauvegarde (voir AccessBackup pour la mise en place de sauvegarde automatique).
Messages postés
1
Date d'inscription
jeudi 25 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012

. – J'ai une base de données qui m'affiche le message suivant : Le projet Visual Basic pour Applications de la base de données est endommagé.
Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Si vous êtes certain de n'utiliser aucune fonctionnalité spécifique, vous pouvez décompiler vraiment à fond en convertissant vers Access 97 puis en reconvertissant vers Access 2000 : plusieurs Mo peuvent encore être gagnés en plus de la méthode consistant à tout réimporter ! D'ailleurs la version 97compactée occupe même 30% de moins encore !

Depuis Access 2003, le passage par 97 référence d'ancien ocx pour les boutons et les onglets, mais il suffit de réimporter tout les objets dans une nouvelle base Access 2000 contenant déjà un onglet et un bouton, pour que tout redevienne OK. Cependant, si on fait la manip depuis Access 2000, c’est tout bon du premier coup.

Si vous ne pouvez pas convertir vers Access 97 puis reconvertir vers 2000, c'est que votre base est instable (endommagée) : le convertisseur affiche alors le message suivant au moment de reconvertir vers 2000 :
"Le projet Visual Basic pour Applications de la base de données est endommagé"
Dans ce cas créez une nouvelle base Access 2000 vierge, puis réimportez tout depuis la version 2000 instable. Puis vérifiez que la base n'est plus endommagée, c'est-à-dire ressayer la conversion 97-2000.

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 et codes sources.

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