Se si sta tentando di ottenere di più dai vostri progetti di MS Access , o si stanno cominciando a programmare in Visual Basic , con un gestore di errori nelle vostre Subs e funzioni in grado di salvare il vostro utente finale un sacco di dolore . Ecco un modo semplice per aggiungere un gestore di errori per il codice che vi permetterà di trattare gli errori , come sono venuti fuori e poi adattare la risposta all'errore specifico . Cose che ti serviranno
Visual Basic 6 o una finestra di codice aperto in MS Access 2003 o versione precedente modulo
Show More Istruzioni
1
aprire una finestra del codice in entrambi i VB6 o un modulo di MS Access e creare una nuova routine Sub denominata TestErrorHandler . A questo punto non ci sarà alcun codice nella sub che sarà simile a questo : TestErrorHandler Public Sub ( ) End Sub
2
Aggiungi il sottostante linee alla routine Sub; non ridigitare i Public Sub e Fine di nuovo le linee Sub . E ' importante assicurarsi che si aggiunge i due punti dopo la riga " error_exit " e " ErrorHandler . " Inoltre , la linea " ErrorHandler " deve essere digitato esattamente come è dichiarato nella riga " On Error GoTo ErrorHandler . " È possibile assegnare un nome al gestore di errore " Jim ", se vuoi . ma è necessario mantenere il nome coerente : TestErrorHandler Public Sub ( ) On Error GoTo ErrorHandlerError_Exit : Exit SubErrorHandler : Fine linea SubThe "On Error GoTo ErrorHandler " dirige il sub per cercare un gestore di errori dovrebbe sorgere un errore quando si tratta di linea running.The " error_exit " uscite fuori dalla Sub poiché la linea di " Exit Sub " è stata aggiunta immediatamente sotto la linea it.The " ErrorHandler : " è dove verranno trattati gli errori specifici
3
. ora aggiungere le seguenti due righe di codice direttamente sotto " ErrorHandler " : Select Case Err.NumberEnd SelectWe utilizza un'istruzione Select Case per gestire gli eventuali errori specifici che potremmo avere a che fare con
4
. avvisare l'utente che ha avuto luogo un errore e dare loro alcune informazioni aggiuntive . Lo faremo nel nostro Select Case con " Case Else ". Per questo esempio, si mantenerlo semplice per avvisare l'utente che si è verificato un errore e che il numero di errore è , oltre che una breve descrizione. Aggiungere le seguenti righe di codice al vostro " ErrorHandler " : Case Else pstrErrorMessage = " Numero di errore: " & Err.Number _ & vbCrLf & Err.Description MsgBox pstrErrorMessage , vbExclamation , "Error" Resume Error_ExitThe intere Sub dovrebbe apparire come questo : TestErrorHandler Public Sub ( ) On Error GoTo ErrorHandlerError_Exit : Exit SubErrorHandler : Dim pstrErrorMessage As String Select Case Err.Number Case Else pstrErrorMessage = " Numero di errore: " & Err.Number _ & vbCrLf & Err.Description MsgBox pstrErrorMessage , vbExclamation , "Errore" Riprendi error_exit End Sub SelectEnd
5
Il vero vantaggio di avere un gestore degli errori sul posto è che si può fare con gli errori attesi in un modo elegante . Ad esempio , se si decide di scrivere una routine Sub che si sposta un file ( s ) da una cartella ad un'altra , ma anticipare che in occasione che il o più file non esistono , è probabile ottenere una ripetuta Numero di errore 53 , che è un file non trovato errore . È possibile aggiungere una riga al Select Case che risolverà questo errore e poi continuare con la routine Sub . Aggiungere queste due righe direttamente sotto la linea " Select Case " : causa 53 Riprendi nextby fare con il file atteso errore non trovato in questo modo , è possibile avere la routine Sub continuare a correre senza avvisare l'utente quanto è successo . Ovviamente, se si desidera che l'utente sappia che il file specificato non è presente, si dovrebbe aggiungere un MsgBox in tal senso . L'intero Sub ora si presenta così ( lo screenshot associato a questo passo riflette come il codice dovrebbe essere nell'ambiente di programmazione VB ) : TestErrorHandler Public Sub ( ) On Error GoTo ErrorHandlerError_Exit : Exit SubErrorHandler : Dim pstrErrorMessage As String Select Err.Number Case Case 53 Resume Next Case Else pstrErrorMessage = " Numero di errore: " & Err.Number _ & vbCrLf & Err.Description MsgBox pstrErrorMessage , vbExclamation , "Error" Resume error_exit End Sub SelectEnd
< br >