IT Fjernundervisning

Fejlhåndtering

Beskrivelse

Fejlhåndtering

Du kan fange runtime fejl i VBA ved:

On Error GoTo LineLabel

Som vist i dette lille eksempel

    On Error GoTo ErrorTrap     DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "testImport", "c:\importfil.xlsx"      Rydop:     'Noget kode, hvis nødvendigt          Exit Sub ErrorTrap:     Besked = "Fejl nr: = " & Err.Number & vbCr     Besked = Besked & Err.Description & vbCr & vbCr     Besked = Besked & "Sørg for at filen er på c-drevet"     Svar = MsgBox(Besked, vbQuestion + vbOKCancel, "Error")     If Svar = vbCancel Then         Resume Rydop     Else         Resume     End If 

Vi har som du ser et par muligheder for at genoptage afviklingen af koden

  • Resume - genoptager afviklingen med den linje der gav fejlen
  • Resume Next - genoptager afviklingen lige efter den linje der gav fejl
  • Resume LinieLabel - genoptager afviklingen ved den label vi har angivet

Du kan også vælge "On Error Resume Next", men det skal man nok lige overveje lidt...


Øvelse

Opret en database med ovenstående eksempel, sørg for at det virker og send det til mig.

Implementer fejlhåndtering i de andre makroer du har skrevet.



Læs mere om fejlhåndtering her:

http://allenbrowne.com/ser-23a.html

http://www.afralisp.com/vba/error.htm

Jeg har også bikset et errorlogging system sammen på et tidspunkt - du kan se det her: http://www.kursusmaterialer.dk/Access_VBA/Errorlogging_system/Modul.aspx

Brug for hjælp til VBA, VSTO eller SQL?

Scient Data tilbyder professionel IT-konsulentbistand

Kontakt Scient Data →