Komfortable Parameterauswahl in Access

Fehlerabfrage

Natürlich verändert sich mit diesem minimalen Code bestenfalls die erscheinende Fehlermeldung, wenn das Formular nicht geöffnet ist. Aber Sie haben nun alle Möglichkeiten der Fehlerbehandlung innerhalb von VBA, wie in Listing 7 gezeigt. Sie bemerken also rechtzeitig den Fehler, der auftritt, wenn das Formular nicht geöffnet ist, oder in der Combobox keine Auswahl getroffen wurde.

Function HoleKundenCode() As String
On Error Resume Next
HoleKundenCode = Forms("frmPopUp").cmbKundenCode.Value
If HoleKundenCode = "" Then
HoleKundenCode = DLookup("[Kunden-Code]", "Bestellungen")
End If
If Err.Number <> 0 Then
MsgBox "Fehler Nr. " & Err.Number & ": " & Err.Description & vbCrLf & vbCrLf & "Zufälliger erster Kunden-Code '" & HoleKundenCode & "' wird eingesetzt!", vbCritical
End If
End Function

Dann können Sie wahlweise den ersten Kunden-Code mit DLookUp() nachladen, damit überhaupt ein Ergebnis angezeigt werden kann. Oder Sie stoppen die gesamte Ausführung der Abfrage mit dem End-Befehl (Listing 8).

Function HoleKundenCode() As String
' ...wie bisher
If Err.Number <> 0 Then
MsgBox "Fehler Nr. " & Err.Number & ": " & Err.Description & vbCrLf & vbCrLf & "Abfrage wird nicht ausgeführt!", vbCritical
End
End If
End Function

Leider ist es nicht möglich, in dieser Funktion das offensichtlich nur fehlende Formular noch schnell zu öffnen. Access scheint das beim gleichzeitig stattfindenden Öffnen einer Abfrage nicht zuzulassen. (loh/mha)

Lorenz Hölscher <loh> bietet seit über 10 Jahren Trainings für alle Microsoft Office-Produkte und (VBA-)Programmierung an. Seine Schwerpunkte sind Access, Word und Excel sowie begleitende grafische Arbeiten. Seine „branchenfremden“ Fachkenntnisse als Architekt, Layouter und Designer kann er gut in die jetzige Arbeit integrieren. Sie erreichen ihn unter L.Hoelscher@cls-software.de.