Aucune donnée dans un état

Comment afficher un message personnalisé lorsqu’un état ne comporte aucune donnée ? (on obtient sinon un état vide inutile)

Dans Access, un état comporte un événement Sur aucune donnée (NoData) qui est programmable (euh… tous les événements sont programmables, ils sont faits pour ça :-)).

  1. Ouvrez l’état concerné en mode Création.
  2. Faites apparaître les propriétés de l’état, notamment la liste des événéments.
  3. Définissez l’événément Sur aucune donnée en y mettant quelque chose comme :

L’instruction MsgBox affiche votre message, et la ligne Cancel = True annule l’impression de l’état proprement dit (ou son affichage en mode Aperçu).

Ca marche presque…

Si l’impression de votre état est déclenchée par un bouton de commande, et que ce bouton a été construit grâce à l’Assistant Bouton de commande, vous obtenez maintenant un message du style « L’action OpenReport a été annulée« . Le problème ne vient pas du code ci-dessus, mais du bouton de commande lui-même…

  1. Faites apparaître les propriétés du bouton de commande, notamment l’onglet Evénement.
  2. Cliquez sur les points de suspension à droite de l’événement Sur clic.
  3. Repérez la ligne MsgBox Err.Description et supprimez-la (ou faites la précéder d’une apostrophe, pour en faire un commentaire).

C’est bon maintenant ?

Si vous maîtrisez VBA, il est mieux d’aménager la gestion d’erreurs du bouton de commande, plutôt que de l’annuler brutalement ! (cf. p351 du « Access 2002 Cookbook » ou p837 du « Access 2002 Référence »).

Vous aimerez aussi...

4 réponses

  1. Hervé Inisan dit :

    Odinus > La configuration du portable est strictement la même ?

    PS : La question n’a pas vraiment de rapport avec l’article, elle serait mieux ici. 😉

  2. Odinus dit :

    Bonjour,
    Suite au crash de ma machine, je ne peux plus accéder à ma base de données (format 2002-2003) avec access 2007 sous Vista Premium 32 Bits alors qu’avant tout était OK. J’ai essayé avec des sauvegardes, j’ai réinstallé Access. rien n’y fait. J’ai recréé une base vide et réimporté tout. Access se lance et plante systématiquement en me créant un fichier *.LDB. Je recommence, Rebelote et j’essaie pas à pas. J’ai accès à mes tables, requêtes, états, et quelques formulaires, mais pas tous De plus lorsque je lance certains formulaires il plante aussitôt. Comment pourrais-je tester les formulaires un à un sans faire planter Access car tout le restant a l’air bon. J’ai essayé d’installer la même base sur un portable et là par contre cela fonctionne.
    Que puis-je faire. Merci pour la réponse.

  3. Hervé Inisan dit :

    Jonathan > Le formulaire est ouvert lui-même de quelle manière ? Formulaire normal, modal ou indépendant ? 

    Et quelle est la commande qui ouvre l’état ?

  4. Jonathan dit :

    J’ai un autre problème :

    Avant d’ouvrir le rapport, j’ai un formulaire ouvert. Lors du nodata, j’affiche un message et le rapport ne s’affiche pas. Mais le formulaire ouvert disparaît lui aussi.

    Je ne comprends pas ce qui ce passe. Apparemment, il reste ouvert. Il faudrait rafraichir quelque chose mais je ne sais pas quoi.

    merci,

Laisser un commentaire

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