13.3.9 Funktionale Fehlerbehandlung
13.3.10 Benutzerdefinierte Fehler
Mit der bereits weiter oben kurz vorgestellten Raise-Methode des Err-Objekts können Sie benutzerdefinierte Fehler erzeugen. Benutzerdefinierte Fehler erzeugen? Reichen die von Access erzeugten Fehler nicht? Vermutlich schon. Die Raise-Methode bietet vielmehr die Möglichkeit, Eingabefehler oder dergleichen in einem Zuge mit den sonstigen Fehlern zu behandeln und diesbezüglich eine einheitliche Form zu finden. Die Funktion aus Listing 13.3 bietet ein gutes Beispiel.
Mit den Erweiterungen aus folgendem Listing prüft die Funktion, ob eine leere Zeichenkette als Firmenname übergeben wurde. Ist das der Fall, löst sie einen Fehler mit der Nummer vbObjectError + 1 aus, wobei vbObjectError eine in VBA eingebaute Konstante ist, die eine Kollision mit den eingebauten Fehlernummern verhindern soll.
Beim Auftreten dieses Fehlers springt die Routine wie bei einem herkömmlichen Fehler in die Fehlerbehandlungsroutine und gibt eine entsprechende Meldung aus.
Public Function FirmaAnfuegen(strFirma As String) On Error GoTo FirmaAnfuegen_Err Dim db As DAO.Database If Len(strFirma) = 0 Then Err.Raise vbObjectError + 1 End If Set db = CurrentDb db.Execute "INSERT INTO tblFirmen(Firma) VALUES('" & strFirma _ & "')", dbFailOnError Set db = Nothing 'Fehlerbehandlung FirmaAnfuegen_Exit: 'Restarbeiten Exit Function FirmaAnfuegen_Err: Select Case Err.Number Case 3022
MsgBox "Die Firma ist bereits vorhanden. " _ & "Bitte geben Sie einen anderen Firmennamen ein." Case vbObjectError + 1 MsgBox "Bitte geben Sie einen Firmennamen an." End Select GoTo FirmaAnfuegen_Exit End Function
Listing 13.5: Auslösen eines benutzerdefinierten Fehlers
Sie können der Raise-Methode noch weitere Parameter wie Source (entspricht dem aktuellen VBA-Projekt) oder vor allem Description übergeben, in der Sie den anzuzeigenden Fehlertext unterbringen.
Nächster Abschnitt:
13.3.11 Fehler bei API-Aufrufen
|