Il est de bon ton de se souhaiter la bonne année. Mais vous, et vous seul, pourrez faire en sorte que cette année soit bonne, meilleure que celle qui vient de s'écouler. Apprenez à ne compter que sur vous, car personne n'est plus qualifié que vous-même pour bâtir, réparer ou améliorer votre propre vie. Personne ne fera les choses à votre place. D'ailleurs, tout ce que les autres peuvent faire, c'est souhaiter que vous le fassiez. Et ne croyez pas que tout ceux qui vous entourent vous apporteront des solutions : certains font juste partie de vos problèmes. Transformez vos résolutions en actes, et dans douze mois, retournez-vous et souriez-vous fièrement : C'était long. C'était difficile. Mais ça y est : 2017 était une bonne année, merci Moi.

Applications Progicielles Distribuées

Afin de préserver le travail du programmeur, il est possible de faire plusieurs choses :

Barres d'outils et menus personnalisés à une base de données

Barres d'outils

Lorsqu'on est dans une base de données, et qu'on fait

Affichage/Barres d'outils/Personnaliser

Et qu'on crée une nouvelle barre d'outils, celle-ci n'est disponible que quand on entre dans la base de données dans laquelle cette nouvelle barre a été créée.

En outre, seules ces nouvelles barres d'outils expressément créées dans une certaine base de données sont disponibles dans les propriétés des formulaires et des états (Propriété Barre Outils (Toolbar), catégorie toutes du formulaire ou de l'état)

Il n'est apparemment pas possible de créer des nouvelles barres d'outils disponibles pour toutes les bases de données. (Peut-être avec un .MDA ?)

Menus

L'opération est exactement la même, mais il faut définir une propriété supplémentaire

Marche à suivre :

Affichage/Barres d'outils/Personnaliser/Onglet Barres d'outils. Cliquer sur Nouvelle...

Donner un Nom et OK

Cliquer sur Propriétés, et choisir Type : Barre Menus

Il ne reste plus qu'a le garnir de menus (Avec menus prédéfinis), et même si on veut d'icônes.

A présent, la propriété Barre de menu (MenuBar) est disponible dans le formulaire ou l'état.

Menus contextuels

La création d'un menu contextuel s'effectue en plusieurs étapes. Voici l'exemple d'un menu contextuel qui contient une seule option qui effectue une programmation-maison (MsgBox "ok" par exemple):

  1. Création d'un nouveau menu contextuel
  2. Création d'une fonction personnalisée
  3. Attache de la fonction personnalisée à la barre d'outils contextuel
  4. Définition du contexte dans lequel ce menu doit apparaître

Création d'un nouveau menu contextuel

Aller dans la base de données (et même de préférence dans le formulaire concerné, pour des questions de pratique) dans laquelle on désire installer ce menu (il ne sera disponible que dans cette base)

Juste pour voir : Cliquer sur l'objet sur lequel quand on cliquera sur le bouton droit de la souris on aimerais voir ce menu apparaître, aller chercher Propriétés/Toutes/Menu contextuel : La liste est vide : On ne peut pas choisir un menu contextuel déjà existant.

Affichage/Barres d'outils/Personnaliser, Onglet Barres d'Outils et Nouvelle...

Taper un nom : Par exemple ContexteEssai, et OK

Cliquer ensuite sur Propriétés, et Chosir Type : FenIndépendante (C'est le menu contextuel)

Vous avez alors le message suivant qui apparaît :

Vous avez défini la propriété Type de ContexteEssai à la valeur FenIndépendante, ce qui transforme la barre d'outils en menu contextuel.

Le menu contextuel disparaît, car Microsoft Access ajoute ContexteEssai à la barre d'outils Menus Contextuels, cliquez sur la catégorie Personnalisée, puis ajoutez les commandes que vous désirez.

Faites OK et Fermer

Dans l'onglet Barres d'Outils, demandez l'affichage des Menus Contextuels (tout en bas)

Cet barra apparaît en haut de l'écran, et quand on clique sur Personnalisé, on a ContexteEssai qui apparaît

ATTENTION : Certainement un bug : Une fois le menu créé, on ne peut ni le supprimer, ni le renommer (même quand on clique sur Rétablir)

Création d'une fonction personnalisée

Une fois ce menu contextuel créé, il reste à lui appliquer de la programmation. En réalité, on ne peut pas appliquer de Subs à un menu, ni à une icône. Seules les macros sont acceptées. Donc nous alleons devoir créer une macro qui appelle une fonction (pas un sub, les macros n'acceptent pas), qui elle même doit se trouver dans un module global.

Nous allons donc créer un module Global : ModulePourMenu, dans lequel nous allons créer une fonction sans paramètres : FonctionMenuMessage qui contient simplement Msgbox "Tout va bien"

Admettons donc que nous créons la macro MacroMessage, qui appelle simplement à l'aide de la Macro-Fonction ExécuterCode FonctionMenuMessage()

Attache de la fonction personnalisée à la barre d'outils contextuel

C'est donc cette macro MacroMessage qui va être attachée au menu contextuel ContexteEssai :

Affichage/Barres d'outils/Perssonnaliser : Onglet Barres d'outils : afficher les menus contextuels

Dans la fenête Personnaliser : Onglet Commande : Choisir Toutes les macros

Faire glisser la macro MacroMessage vers Personnalisé, descendre sur ContexteEssai, aller un peu à droite, et lâcher

La macro est maintenant active dans le menu contextuel Contexte Essai

Définition du contexte dans lequel ce menu doit apparaître

Il ne reste plus qu'à définir à quel instant ce menu doit apparaître.

Il faut cliqer sur la zone sur laquelle le menu doit apparaître lorsqu'on clique avec le bouton droit, et choisir dans ses propriétés Autre : Menu Contextuel : Choisir dans la liste ContexteEssai.

Dès ce moment, quand on cliquera sur cette zone avec le bouton droit, la macro MacroMessage, qui exécutera la fonction FonctionMenuMessage()

Fichiers .MDE

Avec

Outils/Utilitaires de bases de données/Créer un fichier MDE

On copie la base de données qui devient alors un fichier .MDE. Càd qu'on ne pourra plus visualiser le code, ni entrer dans les formulaires en mode Modification.

Par contre, on peut toujours détruire ou modifier les tables, les relations, etc. Du moment qu'on possède Access 97.

Il n'est pas possible de court-circuiter le .MDE en appuyant sur SHIFT en même temps qu'on ouvre la base

ATTENTION : dans le cas ou Access ne peut pas créer le fichier MDE, par exemple parce qu'il n'a pas assez de place), il ne crée pas le fichier, et n'affiche aucun message d'erreur

Options de démarrage

Avec

Outils/Démarrage

Il est possible de définir bien des choses, comme l'affichage d'un formulaire par défaut (en lieu et place d'une ligne de macro AutoExec), autoriser ou non l'affichage des menus complets, le code après une erreur, le titre de l'applications et d'autres choses du même acabit.

ATTENTION : Tout ce qui est défini dans les options de démarrage est court-circuitable par l'appui de SHIFT au démarrage.

Kit de développement (Access 2)

Les indications ci-présentes sont issues d'Access 2. Access 95 possède aussi un ADK

Avant de lancer l’assistant d’installation

Installer un répertoire dans lequel il y aura tous les fichiers qui devront être inclus dans le RunTime (Application .MDB, icône .ICO, Fichier .INI, éventuelle image .BMP, éventuels fichiers d’aide, bibliothèques etc.)

Prévoir un endroit ou vont être stockés les sous-répertoires Disq1, Disq2, etc qui représenteront les disquettes d’installation

Dans le fichier d'initialisation de l'application (APPLIC.INI par exemple), il est bien de mettre :

Exemple :

[Run-Time Options]
TitleBar=Mon application
Icon=C:\ ... \chemin ... /ICONE.ICO
(Le chemin final de l’installation évidemment)
HelpFile=C:\ ... \chemin ... /FILEHELP.HLP (même commentaire)
StartupScreen=C:\ ... \chemin ... /IMAGE.BMP (même commentaire)
(Ces fichiers étant demandés comme étant inclus depuis l'assistant d'installation)

Astuces à savoir

Dans la version Run-Time, certaines options sont automatiquement désactivées : Par exemple, on ne peut pas empêcher la macro AutoExec avec SHIFT au démarrage

Compactage et réparation

Il est possible d'exécuter msarn200 avec les options Compact et/ou repair, comme ceci : (la base de donnée doit être fermée) MSARN200.EXE base.MDB /REPAIR /COMPACT

Fichiers inclus automatiquement lors de la création d'un Run-Time

Page 24 du livret "Fonctions avancées"