You might have used line numbering to track error locations, but this technique can be a pain (and ugly) to use for every line. Sparse line numbers help you locate code sections generating errors through the intrinsic Erl (error line) property.
Erl captures the most recent line number so you can pinpoint error locations with whichever precision you desire. This can help you determine what to do in the error handlerfor example, do you need to roll back the database transaction?
Public Sub TestErl()
On Error GoTo EH
x = 1 'This is line 0 (no line number set)
x = x / 0 'cause an error
10 x = x / 0 'This is line 10
x = 2
x = x / 0 'This is also "line 10"
20 x = 4
'entering a new section of the procedure, set a new
x = 5
x = x / 0 'this is still "20"
Debug.Print Err.Description & " on line " & Erl
'picks up the most recently used line number
'log or email error info if desired--makes debugging
App.LogEvent "Error " & Err.Number & _
" in TestErl: " & Err.Description & _
" on line " & Erl, vbLogEventTypeWarning