Je génère une requête et un rapport via VBA. J'ai la possibilité de demander à l'utilisateur s'il souhaite produire le rapport sous forme d'instantané. Je lui demande d'abord s'il veut faire une capture d'écran. S'il répond par la négative, rien ne se passe. S'il dit oui, il reçoit une invite lui demandant où il veut l'enregistrer.
Tout fonctionne parfaitement, sauf s'ils disent oui et qu'ils cliquent sur Annuler à l'invite, une erreur d'exécution 2501 se produit, indiquant que l'action du rapport a été annulée. Voici le code.
DoCmd.OpenReport "CONCERNS", acViewPreview, lstFee.Value & " DETAILS"
If MsgBox("Do you wish to create a snapshot of this report?", vbQuestion + vbYesNo) = vbYes Then
DoCmd.OutputTo acReport, "CONCERNS", "SnapshotFormat(*.snp)", ""
End If
C'est aussi la fin de ma procédure, donc je ne me soucie pas vraiment qu'une erreur se produise ici puisque toutes les choses importantes se sont déjà produites. Je sais juste qu'un singe quelque part va s'énerver s'il le voit. Y a-t-il un moyen de gérer cette erreur ? On Error Resume Next n'est pas une option car cela ferait du débogage un cauchemar dans le futur. Il semble que je cherche quelque chose comme un Try/Catch mais je ne pense pas que VBA le supporte.