RDBMS-Zugriff per VBA: Fehlerbehandlung

Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

RDBMS-Zugriff per VBA: Fehlerbehandlung

Im Beitrag »RDBMS-Zugriff per VBA: Verbindungen« haben wir die Grundlage für den Zugriff auf SQL Server-Datenbanken geschaffen, »RDBMS-Zugriff per VBA: Daten abfragen« zeigt, wie Sie die Daten einer SQL Server-Datenbank ermitteln. Im vorliegenden Teil dieser Beitragsreihe erfahren Sie, wie Sie die Daten einer SQL Server-Datenbank bearbeiten.

Fehlerbehandlung

Wie bereits im vorherigen Teil der Beitragsreihe (RDBMS-Zugriff per VBA: Daten bearbeiten, www.access-im-unternehmen.de/1074) an einem kleinen Beispiel demonstriert, können Sie die durch den SQL Server ausgelösten Fehler zwar wie üblich über das Err-Objekt von VBA auslesen. Allerdings hält dieses nur eine einzige Fehlernummer für SQL Server-Fehler vor. Genauere Informationen erhalten Sie über die Errors-Auflistung. Wenn Ihre Anwendung eine Fehlerbehandlung enthält, müssen Sie Informationen über solche Fehler etwas anders aufzeichnen oder bearbeiten als zuvor.

Als Ausgangsbasis verwenden wir eine einfache Fehlerbehandlungsfunktion wie die aus Listing 1. Diese erwartet das Modul, die Prozedur, die Zeile und eine optionale Bemerkung als Pa­ra­meter, die Eigenschaften des Err-Objekts sind ja bereits global verfügbar. Die gesammelten In­for­ma­tio­nen werden dann in eine Textdatei geschrieben. Sie können diese auch direkt in einer Meldung ausgeben, per Mail an den Entwickler schicken et cetera – an dieser Stelle sollen die Daten jedoch erst mal in einer Textdatei landen.

Public Function Fehlerbehandlung(strModul As String, strRoutine As String, lngZeile As Long, _
         Optional strBemerkungen As String)
     Open CurrentProject.Path & "Fehler.log" For Append As #1
     Print #1, "Datum:              " & Format(Now, "yyyy-mm-dd, hh:nn:ss")
     Print #1, "Datenbankpfad:      " & CurrentDb.Name
     Print #1, "Modul:              " & strModul
     Print #1, "Routine:            " & strRoutine
     Print #1, "Benutzer:           " & CurrentUser()
     Print #1, "Fehlernummer:       " & Err.Number
     Print #1, "Fehlerbeschreibung: " & Err.Description
     Print #1, "Zeile:              " & lngZeile
     Print #1, "Bemerkungen:        " & strBemerkungen
     Close #1
     Reset
     MsgBox "Es ist ein Fehler aufgetreten. " & vbCrLf & "Weitere Informationen finden " _
         "Sie in der Datei Fehler.log  im Verzeichnis dieser Datenbank."
End Function

Listing 1: Ausgangsprozedur zur Fehlerbehandlung

Diese wird beispielsweise wie folgt ausgelöst – in diesem Fall durch das erneute Anlegen eines Wertes in einem eindeutig indizierten Feld. Dazu fügen wir die Fehlerbehandlung in eine Prozedur ein, die wie in Listing 2 aussieht. Dabei wollen wir einen Eintrag für ein eindeutig indiziertes Feld zwei Mal anlegen, was einen Fehler auf Seiten des SQL Servers auslösen sollte. Die Prozedur erstellt ein leeres QueryDef-Objekt und ermittelt die Standardverbindungszeichenfolge mit der Funktion Standardverbindungszeichenfolge, die Sie in dieser Beitragsreihe bereits mehrfach eingesetzt haben. Diese landet in der Connect-Eigenschaft des QueryDef-Objekts – ebenso wie der Wert False für die Eigenschaft ReturnsRecords.

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zahlenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Aktuell im Blog
Onlinebanking mit Access

Es ist geschafft: Endlich ist das Buch Onlinebanking mit Access fertiggeschrieben. Das war... [mehr]

Direktzugriff auf Tabellen und Felder

Die IntelliSense-Erweiterung für Tabellen und Felder hat mir soviel Spaß gemacht, dass ich gleich... [mehr]

IntelliSense für Tabellen und Felder

Wenn Sie mit dem VBA-Editor arbeiten und dort gelegentlich SQL-Anweisungen eingeben, müssen Sie... [mehr]

Download Access und SQL Server

Erfahren Sie, welche Schritte zum Download des aktuellen Stands des Buchs "Access und SQL Server"... [mehr]

Bilder in Access 2013

Wer die Bibliothek mdlOGL0710 von Sascha Trowitzsch oder ein ähnliches Modul aus meinen... [mehr]

Dynamische Ribbons

Immer wieder fragen Leser, wie man Ribbon-Elemente wie etwa Schaltflächen in Abhängigkeit... [mehr]

Die Blogmaschine

Einen kleinen Blog zusätzlich zum Shop zu betreiben ist eine tolle Sache. Hier lassen sich... [mehr]

Wegwerfadressen für die Newsletteranmeldung

Die Verwendung von Wegwerf-Adressen für die Nutzung aller möglichen Online-Dienste nimmt... [mehr]

Access und Facebook

Facebook und Access - das ist eine der wenigen Kombinationen, die ich noch nicht in die Mangel... [mehr]

Access und SQL Server - das Projekt

Mein neues Buch Access und SQL Server (gemeinsam mit Bernd Jungbluth) geht in die Endphase. Wer... [mehr]