Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

General: Déterminer le nom de la procédure où l'erreur s'est produite

Author(s)
Dev Ashish

Déterminer le nom de la procédure où l'erreur s'est produite.

(Q) J'ai de la difficulté à déterminer, en mode d'exécution, la procédure où s'est produit une erreur; y a-t-il une façon de déterminer le nom de cette procédure, automatiquement, par programmation?

(A) L'interface utilisateur sous VBE (Access 2000 et 2002) permet de visionner le stack (menu: View | Call Stack...). Malheureusement, VBA ne nous offre pas une propriété ou une méthode pour accéder à cette information. Cependant, vous pouvez y parvenir en ajoutant le code approprié. Selon la complexité, vous pouvez construire une pile (stack) sur laquelle vous déposerez et retirerez (push and pop) le nom de la procédure en y entrant et en y sortant, tel que décrit dans le bouquin "Microsoft Access 95 How" par Getz  et Litwin, ou encore, maintenir une variable globale à cette fin. Par exemple, utilisant une variable globale:

Public pstrProcName as string
Public pstrSubProcName as string

Par la suite, pour chacune de vos procédures, au début du code, assigner ces variables par le nom de la procédure, comme par exemple:


  
'   ***** Code Start ******
Sub button1_click()
PstrProcName = "button1_click()"
Call sShowMsg
Msgbox pstrProcName
End sub

Sub sShowMsg()
PstrSubprocName = "sShowMsg"
Msgbox "You are in procedure: " & pstrSubProcName
End sub

'   ***** Code End ******

L'exemple illustre l'utilisation de PstrSubprocName. En effet, si la seconde procédure avait utilisé la même variable, PstrProcName, dans sShowMsg, lors du retour de Call sShowMsg, le mauvais nom de procédure aurait été retourné par le message.

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer