OVH Cloud OVH Cloud

Bloquer AutoExec

6 réponses
Avatar
TiMike
Bonjour,
je dois analyser des bases Access 2000 a l'aide d'un script pour y detecter
d'eventuels chemins reseau (x:\ ... ou \\server\share\...) dans les modules
VBA.
Comment puis-je bloquer l'execution de macros AutoExec qui pourraient se
trouver dans ces bases?
D'avance merci
--
TiMike

6 réponses

Avatar
Pierre CFI [mvp]
bonjour
a l'ouverture tu gardes le doigt sur shift (maj)

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/

"TiMike" a écrit dans le message de news:
Bonjour,
je dois analyser des bases Access 2000 a l'aide d'un script pour y detecter
d'eventuels chemins reseau (x: ... ou servershare...) dans les modules
VBA.
Comment puis-je bloquer l'execution de macros AutoExec qui pourraient se
trouver dans ces bases?
D'avance merci
--
TiMike


Avatar
TiMike
Bonsoir Pierre,
Je connais l'utilisation de la touche Shift, mais cela ne correspond a ce
que je veux: l'analyse doit se faire par execution d'un script (donc en
batch) et je ne serai pas present pour l'execution.
Y a-t-il un moyen de bloquer les macros AutoExec par le code du script?
Merci
--
TiMike



Bonjour,
je dois analyser des bases Access 2000 a l'aide d'un script pour y detecter
d'eventuels chemins reseau (x: ... ou servershare...) dans les modules
VBA.
Comment puis-je bloquer l'execution de macros AutoExec qui pourraient se
trouver dans ces bases?
D'avance merci
--
TiMike


Avatar
Pierre CFI [mvp]
.../....
là, je sais pas

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/

"TiMike" a écrit dans le message de news:
Bonsoir Pierre,
Je connais l'utilisation de la touche Shift, mais cela ne correspond a ce
que je veux: l'analyse doit se faire par execution d'un script (donc en
batch) et je ne serai pas present pour l'execution.
Y a-t-il un moyen de bloquer les macros AutoExec par le code du script?
Merci
--
TiMike



Bonjour,
je dois analyser des bases Access 2000 a l'aide d'un script pour y detecter
d'eventuels chemins reseau (x: ... ou servershare...) dans les modules
VBA.
Comment puis-je bloquer l'execution de macros AutoExec qui pourraient se
trouver dans ces bases?
D'avance merci
--
TiMike




Avatar
Michel Savinet
Bonjour Jimmy,
je dois analyser le code des modules VBA (ce qui m'interdit d'ouvrir les
bases en DAO: cela me permet seulement de rechercher la présence de tables
liées)
Merci
Avatar
Michel Savinet
Bonsoir Jimmy,
Merci pour ces indications, mais ce n'est pas l'analyse des modules qui me
pose probleme (j'ai ecrit le code pour).
Ce qui m'embete c'est d'ouvrir la base :
appAccess.OpenCurrentDatabase "c:exempleclavier.mdb"
car cela declenche la macro AutoExec si la base en contient une.
Comme je ne connais pas les bases, j'ignore s'il y a ou non des macros
AutoExec et les traitements qui peuvent s'y cacher! Mon analyse doit etre
totalement transparente pour les utilisateurs qui ne doivent pas etre
impactes par notre operation de migration d'architecture technique
(changement de noms des serveurs, changements de lecteurs reseau avec
integration dans un DFS).

L'ouverture de la base en DAO
Set mdb = appAccess.DBEngine.Workspaces(0).OpenDatabase(fi.Path)
me permet d'analyser les tables pour y chercher des tables liees (avec le
chemin de la source), mais ne me donne pas acces aux modules VBA!

Je suis preneur de toute suggestion;
Merci
Avatar
Jimmy Limousin
mer. 21 sept. 2005 21:30:22 Michel Savinet a écrit dans le message de news
<news:4331b4ac$0$18817$ :

Ce qui m'embete c'est d'ouvrir la base :
appAccess.OpenCurrentDatabase "c:exempleclavier.mdb"
car cela declenche la macro AutoExec si la base en contient une.


Satanées macros !

Comme je ne connais pas les bases, j'ignore s'il y a ou non des macros
AutoExec et les traitements qui peuvent s'y cacher! Mon analyse doit etre
totalement transparente pour les utilisateurs qui ne doivent pas etre
impactes par notre operation de migration d'architecture technique
(changement de noms des serveurs, changements de lecteurs reseau avec
integration dans un DFS).


Je ne vois plus que l'analyse binaire des fichiers mdb en espérant que les
paramètres passés en dur apparaissent dans le contenu, les instructions VB
devant être codées par un entier. C'est du moins ce que j'ai pu observer dans
la plupart des langages interprétés que j'ai rencontrer. Je n'ai jamais été
voir dans le bin des mdb, c'est plutôt extremement propriétaire comme format.

Néanmoins, il ne sera pas aisé de patcher le code si les nouvelles chaines
sont plus longues que les anciennes.

A mon avis, il faut revoir la méthode de mise à jour. Pour ce qui est d'être
transparant pour les utilisateurs, j'ai une méthode infaillible : c'est de
bosser en dehors des heures de bureau. Je ne vois que ça :-|


Je n'ai pas testé : mais peut-être existe-t-il un moyen d'atteindre les
macros d'une base externe un peu la manière que je t'ai montré pour les
modules ? La question est là. Si ce n'est pas possible, je crois bien que tu
es foutu. Perso, je n'utilise jamais les macros et ne souhaite pas tomber sur
la reprise de maintenance de bases les utilisant.

Bon courrage pour la suite et tiens moi au jus.

--
VG> mon patronyme figure en clair sur usenet et google...
Anonyme in «Ma vie, mon oeuvre pour la postérité»