Shell et guillemets

Comment lancer un programme externe à Access via la commande Shell, en ouvrant en plus un document précis ?

Principes de base

En principe, vous lancez un logiciel comme la calculatrice de Windows via la commande Shell.
Par exemple :

ou, avec le chemin complet :

La constante vbNormalFocus précise que le logiciel doit s’ouvrir dans une fenêtre normale. D’autres constantes vous sont proposées, permettant de choisir une fenêtre agrandie (« maximisée »), réduite (« minimisée »), etc.

Ouvrir un document

Si le logiciel externe le permet (c’est le cas de Word, Excel, et de moult logiciels existants… mais pas tous !), vous pouvez également transmettre dans la ligne de commande le nom d’un document à ouvrir. Ca donne en théorie :

Par exemple, la commande qui suit démarre le bloc-notes de Windows en ouvrant un fichier nommé test.txt placé sur le bureau d’une machine Windows 9x:

Ca se complique si le chemin d’accès au logiciel ou au fichier contient des espaces, car la commande Shell ne peut plus facilement identifier le logiciel et son fichier. Sous Windows, il faudrait dans ce cas ajouter des guillemets autour de chaque chemin… mais ce n’est pas possible ici (en VBA), puisque les guillemets servent déjà de délimiteurs de chaînes de caractères.

L’astuce consiste à doubler les guillemets autour des 2 chemins (en plus des guillemets délimiteurs). Ce qui donne :

Et si le nom du fichier est stocké dans une variable ?
On applique le même principe : la variable sera intégrée par concaténation à l’emplacement souhaité. Par exemple :

Vous aimerez aussi...

1 réponse

  1. bobe48000 dit :

    merciiiiiiiii

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *