LoScortese ha scritto:
Ma sarebbe utile al fine di trovare più rapidamente l'errore anche conoscere l'ultimo comando VBA eseguito prima dell'errore.
(nel frattempo fratac ha già dato una buona mano, ormai ho scritto e proseguo)
Esiste la funzione Erl che restituisce il numero di riga che ha dato l'errore, però il codice deve essere scritto con i numeri di riga, altrimenti dirà sempre 0
Private Sub ErrorTest()
10 On Error GoTo ErrorHandler
20 Eval(1/0)
30 ExitSub:
40 Exit Sub
50 ErrorHandler:
60 Debug.Print Err.Description & " on line " & Erl
70 Resum Exit
End Sub
(è codice scritto al volo, tanto per far capire/vedere il discorso della numerazione delle righe)
Raramente si trova codice scritto in questo modo se non per comodità di riferimento ad una righa precisa (ad esempio se si posta su un forum una routine particolarmente lunga)
Se l'ambiente in cui il tuo db gira non è quello di solo runtime (nel post parli di una modalità debug e una runtime ma non capisco bene a cosa ti riferisci) non molto tempo ho trovato questo
https://sites.google.com/site/msaccesscode/vba-3/showerrorlineinvba
in cui, in pratica, il codice genera al volo una routine numerata clone di quella in cui l'errore si è veramente verificato. E' ovvio che serve Access completo e che non sia un mde/accde in cui l'editor VBA non è gestibile.
La pagina fa rifermento al "glorioso" MzTools che però non è più freeware e le recenti versioni di Access sono incompatibili con la versione 3.