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 :-)).
- Ouvrez l’état concerné en mode Création.
- Faites apparaître les propriétés de l’état, notamment la liste des événéments.
- Définissez l’événément
Sur aucune donnée
en y mettant quelque chose comme :
1 2 3 4 |
Private Sub Report_NoData(Cancel As Integer) MsgBox "Rien à imprimer !", vbInformation Cancel = True End Sub |
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…
- Faites apparaître les propriétés du bouton de commande, notamment l’onglet Evénement.
- Cliquez sur les points de suspension à droite de l’événement
Sur clic
. - 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 »).
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. 😉
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.
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 ?
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,