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 →