Les commutateurs de démarrage

Lorsque vous lancez Access, il est possible de définir quelques options permettant de personnaliser le démarrage

Par exemple, lorsque vous double-cliquez sur l'icône Access, vous pourriez ne pas vouloir cette incessante boîte de dialogue :

Il suffit pour cela d'ajouter ce qu'on appelle un "Commutateur de démarrage". Ici, c'est le commutateur /NoStartup.

Mais comment fait-on pour créer un commutateur de démarrage ?

Il faut commencer par créer un raccourci sur votre bureau qui pointe vers Access (en fait MsAccess.exe). Pour ce faire, vous cliquez avec le bouton droit de votre souris sur le fond de votre bureau, et vous choisissez Nouveau/Raccourci :

Cliquez sur Parcourir pour trouver ou se cache votre MsAccess.exe

.

Vous le trouverez dans votre Dossier C:\Program Files\Microsoft Office\Office : . Sélectionnez-le et cliquez sur OK.

Le chemin complet et le nom de l'application apparaissent alors encadrés de guillemets ici

"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE"

Cliquez sur SUIVANT

Il vous demande d'écrire un raccourci, ce n'est pas important : Ecrivez ce que vous voulez , et cliquez sur TERMINER.

Vous voici à présent propriétaire d'un raccourci vers Access : . Bon, si vous cliquez 2 fois dessus, vous constatez qu'il affiche toujours cette boîte de démarrage

Donc, c'est maintenant que nous allons lui injecter le commutateur de démarrage /NoStartup qui va l'empêcher d'afficher ça.

Cliquez avec le bouton droit de votre souris sur votre nouveau raccourci "Mon Access à moi", et choisissez "Propriétés". C'est la zone "Cible" qui va nous intéresser , puisque c'est ici que l'appel à MsAccess.exe est écrit. Ajoutez après le dernier guillemet /NoStartup : (N'oubliez pas de mettre un espace entre le dernier guillemet et le /). La ligne de commande complète est donc :

"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" /NoStartup

(Chez moi, c'est un tout petit peu différent car j'ai installé mon Office dans un dossier Office2000)

Cliquez sur OK

Bien. Maintenant, quand vous cliquez deux fois sur votre icône , Access se lance, mais vous n'avez PLUS la boîte de dialogue de démarrage. Félicitations, vous venez de créer votre premier commutateur de démarrage !

Ceci dit, il s'agit d'un commutateur qui s'applique simplement au lancement d'Access, sans parler de bases de données... Mais il est possible de créer une icône qui non seulement lance Access, mais également une certaine base de données. Par exemple, essayons de créer un raccourci qui va appeler Access, qui lui-même va appeler une base de données. Par exemple C:\Mes documents\Baseclient.mdb.

Pour pouvoir tester cette façon de faire, commencez par créer une base de données dans C:\Mes documents qui s'appelle Baseclient.MDB.

Ensuite, quittez Access, et recliquez comme tout à l'heure sur votre icône "Mon Access à moi" avec le bouton droit de votre souris.

Dans la zone cible, retirez le /NoStartup, et remplacez-le par "C:\Mes documents\Base client.mdb" : . La commande complète étant donc :

"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "C:\Mes documents\Base client.mdb"

Voilà : Faites OK, maintenant, quand vous double-cliquz sur votre icône , Access s'ouvre et ouvre automatiquement la base de données Base client.mdb. Inutile d'ajouter le commutateur /NoStartup encore après Base client.mdb", puisque de toutes façons, Access ne l'affiche pas s'il affiche une base de données directement...

Le nom de la base de données est en quelque sorte un commutateur, mais il n'est pas précédé d'un slash (/), alors que les autres commutateurs comme /NoStartup le sont.

Ceci dit, lors de l'ouverture d'Access avec une base de données, il est possible d'encore ajouter un paramètre après. Par exemple, vous voudriez que la base de données soit ouverte en mode lecture seule (Read Only - ro). Retournez dans les propriétés de votre icône , et ajoutez le commutateur /ro, comme ceci :

"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "C:\Mes documents\Base client.mdb" /ro

Lorsque vous cliquez deux fois sur votre icône, Access va vous prévenir que la base de données est ouverte en mode lecture seule.

Vous pouvez également demander un commutateur avec un paramètre, comme par exemple lui demander d'exécuter une certaine macro dès l'ouverture de la base de données. Imaginons que vous ayiez une macro nommée M:_ControleOuverture, et que vous vouliez qu'elle s'exécute automatiquement à l'ouverture de la base de données, voici la ligne de commande :

"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "C:\Mes documents\Base client.mdb" /x M_ControleUtilisateur

Maintenant, vous avez la possibilité de cumuler les commutateurs. Admettons que vous vouliez que votre icône appelle la base de données en vous loguant sous le nom Michel, avec le mot de passe mic (Voyez cette page si vous désirez apprendre à créer des utilisateurs et des groupes), et ensuite, en plus exécuter la macro M_ControleUtilisateur :

"C:\Program Files\Office2000\Office\MSACCESS.EXE" "C:\Mes documents\Base client.mdb" /user "Michel" /pwd "mic" /x M_ControleUtilisateur

Certains commutateurs n'ouvrent pas la base de données dans le but de travailler dedans, mais la répare ou la compacte (Effectuent la commande Outils/Utilitaires de base de données/Compacter une base de données, et Outils/Utilitaires de bases de données/Réparer une base de données) :

"C:\Program Files\Office2000\Office\MSACCESS.EXE" "C:\Mes documents\Base client.mdb" /user "Michel" /pwd "mic" /compact
"C:\Program Files\Office2000\Office\MSACCESS.EXE" "C:\Mes documents\Base client.mdb" /user "Michel" /pwd "mic" /repair

Voici la liste des commmutateurs utilisables avec Access 2000 : (Je ne les connais pas tous. Si vous les connaissez, ce serait gentil de me les communiquer...)

Commutateur Explication
/runtime va forcer la BDD, lors d'une erreur de code VBA, à
ne pas afficher le code ainsi que la fenêtre proposant de debugger le code.
Par contre, l'appli va se terminer brutalement.
/NoStartup Supprime l'écran de démarrage. Inopérant bien sûr si une base de données est aussi lancée
Pour comprendre les 3 commutateurs suivants, je vous conseille de lire cette page
/wrkgrp NomDuFichierMDW Se connecte à un fichier de groupe de travail.
/User "NomUtilisateur" Se connecte avec le Nom précisé
/Pwd "MotDePasse" Se connecte avec le mot de passe précisé. ATTENTION : Ce n'est PAS le mot de passe que vous définissez avec Outils/Sécurité/Définir le mot de passe de la base de données, mais celui qui est utilisé avec Outils/Sécurité/Gestion des utilisateurs et des groupes
/Profile Profil utilisateur    Base de données Je ne connais pas
/Excl Ouvre la base de données en mode exclusif. Voyez cette page pour comprendre ce qu'est le mode exclusif
/Ro Ouvre la base de données en lecture seule (Read Only)
Les 2 paramètres suivants n'ouvrent pas la base de données pour travailler dedans, mais simplement la répare ou la compacte :
/Repair Répare la base de données. Ne doit pas être utilisé avec une base
Répliquée.
/Compact NouvelleBaseDeDonnées Compacte la base de données. Ne pas utiliser avec le commutateur Repair. Si on indique un autre nom de base de données en paramètre supplémentaire, on compacte la base de données VERS un autre nom et une éventuelle autre destination.
/X NomDeLaMacro Exécute une macro particulière. A savoir : Si vous avez une macro appelée Autoexec dans votre liste de macros, elle sera automatiquement exécutée même si vous n'avez pas précisé de paramètre /x NomDeLaMacro
/Cmd <Valeur> {Doit être le dernier commutateur. Ne pas utiliser avec le commutateur Compact ou Repair} Voir ci dessous
/decompile Le texte ci dessous est simplement recopié d'un autre site (http://www.access-sauvetage.com/infoe.htm)
Ceci est un commande non documentée. À l'aide de ce commutateur, les objets de la base de données sont recompilés. Ceci peut aider dans le cas où le P-code généré est défectueux mais les textes sources sont toujours en état. Cette action n'a aucune effet sur les tables défectueuses mais seulement sur les formulaires, les états et les modules.

Utilisez cette possibilité avec précaution et testez votre base de données avec soin!!

Le commutateur /Cmd (contraction de Command) est un commutateur personnalisé. Par exemple :

"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE C:\Mes Documents\Base client.mdb /cmd Une grande armoire"

injecte Une grande armoire dans la base de données. Mais contrairement aux autres commutateurs qui ont chacun une fonction propre (Donner le nom d'utilisateur, le mot de passe, empêcher la fenêtre de démarrage, etc.), Cmd n'a pas de fonction précise. Une grande armoire est envoyée dans la base de données, mais ne fait rien.

Quelle est l'utilité d'un commutateur qui ne fait rien ?

Ca, c'est vous qui le décourvrirez. Ici, nous allons prendre un exemple idiot. Admettons que la base de données ne soit pas sécurisée avec des utilisateurs et des groupes : L'ouverture est donc anonyme. Mais on aimerait que l'utilisateur qui clique deux fois sur le raccourci sur son bureau qui pointe vers la base de données qui, elle, est sur un serveur commun, soit saluée par son prénom. C'est à dire que dès l'ouverture, Nadine se voit saluée de cette façon :

Pour ce faire, ça se passe en plusieurs étapes, et accrochez-vous, ce n'est pas si simple !:

  1. Créez un raccourci vers votre base de données de la manière inqiquée en haut de cette page, qui va contenir ceci (je vous laisse faire les corrections nécessaires sur votre PC):
    "C:\Program Files\Microsoft Office\Office\MSACCESS.EXE C:\Mes Documents\Base client.mdb /cmd Salut Nadine !"
    Testez-maintenant ce que vous venez de faire, car si vous ne testez pas la bonne tenue des différentes étapes, vous risquez de ne rien voir du tout
    Mais ce n'est pas ça qui va suffire à la saluer... Pour l'instant on a juste injecté Salut Nadine ! dans la base.
  2. Nous allons maintenant voir la macro Autoexec. Qu'est ce que c'est que cette macro ? C'est une macro normale, comme toute macro que vous pouvez concevoir avec Access, mais le simple fait de la nommer Autoexec suffit pour qu'Access la reconnaisse comme macro de démarrage : C'est à dire que dès l'ouverture de la base de données, elle sera exécutée sans autre forme de procès (Ca n'a rien a voir avec le commutateur de démarrage /Cmd).
    Créez donc une nouvelle Macro que vous appellerez Autoexec, qui va contenir ceci : . Fermez votre base de données qui contient maintenant la macro AutoExec, et lancez-là à nouveau en double-cliquant sur votre icône. Vous avez maintenant un message de bienvenue qui dit seulement Youpi dès l'ouverture de la base de données, preuve que cette macro remplit son office.
    Mais ce n'est pas Youpi qu'on veut afficher, mais Salut Nadine ! On ne va quand même pas écrire Salut Nadine à la place de Youpi, car, évidemment, dans ce cas, tous les utilisateurs qui vont ouvrir la base de données vont se faire saluer par Salut Nadine ! (D'ailleurs dans l'état actuel des choses, tous les utilisateurs qui vont ouvrir la base vont se faire dire Youpi dès le lancement)
    On pourrait croire qu'il suffit de remplacer alors Youpi par /Cmd, ou Cmd pour récupérer ce fameux commutateur, mais ce serait trop simple ;-)
    En fait, dès que le commutateur Cmd est injecté dans la base, il est récupéré par Access comme étant une variable dont le nom est Command en toutes lettres.
    Bon... On remplace Youpi par Command alors ?
    Eh bien, non, toujours pas. Ce serait encore trop simple. Nous allons devoir carrément créer une fonction en visual basic.
  3. Créez un nouveau module, dans lequel vous mettez le code suivant :
    Function DireBonjour()
     MsgBox Command
    End Function


    En visual basic, et seulement en visual basic, vous pouvez traiter le commutateur Cmd par la variable Command. Si vous n'avez jamais écrit de fonction de votre vie, je comprend que ce code vous laisse un peu perplexe. En fait dès que nous allons faire appel à cette fonction DireBonjour, nous allons récupérer le contenu de Command, qui a été rempli par le commutateur /Cmd, et qui contient Salut Nadine !, et nous allons l'afficher avec MsgBox Command ()
    Fermez visual basic, enregistrez le module sous le nom P_Module, (P veut dire Programmation).le nom que vous donnez n'est pas important ici (contrairement à AutoExec)
  4. Revenez dans la macro AutoExec en mode création, et remplacez ce que vous avez écrit par ceci :

Voilà. C'est enfin terminé. Vous pouvez relancer encore une fois votre application en doublecliquant sur votre icône, et cette fois, il devrait bien afficher automatiquement Salut Nadine ! au démarrage.


Attention : Les commutateurs évoluent de version en version d'Access. Si vous avez Access 97, les commutateurs ne sont pas les mêmes. Visitez le site de Microsoft pour connaître les changements.