[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Felder bereinigen

Sprache / Programm: Access ab Version 2000
Beschreibung

Die beiden Funktionen dienen der Bereinigung von Text und Memo-Feldern. Dabei werden Leerzeichen und Zeilenumbrüche, die sich am Anfang oder am Ende eines Feldes befinden entfernt. Ist danach das Feld dann leer ("""), wird der Feldinhalt durch eine Null ersetzt.

Die Funktion FeldReinigen() kann in einer Aktualisierungsabfrage eingesetzt werden. Der Rückgabewert ist eine NULL oder ein bereinigter Wert

Die Funktion FeldBereinigung() kann in Access-Makros mit der Anweisung AusführenCode eingesetzt werden, um mehrere Felder einer Tabelle mit Hilfe automatisch erstellter und ausgeführter Aktualisierungsabfragen zu bereinigen.

VBA-Quelltext
Public Function FeldBereinigung(Tabelle As String, ParamArray FeldNamen())
    Dim Feld As Variant
    On Error GoTo FehlerBeiAktualisierung
    BeginTrans ' Transaktionsschutz einschalten
    For Each Feld In FeldNamen
        CurrentDb.Execute "UPDATE [" & Tabelle & "] Set [" & _
                Feld & "]=FeldReinigung([" & Feld & _
                "]) WHERE (Not ([" & Feld & "] Is NULL))"
    Next Feld
    CommitTrans ' Alle Änderungen gemeinsam übernehmen
Exit Function

FehlerBeiAktualisierung:
    Rollback ' Keine Änderung
    MsgBox Err.Description, vbCritical, "Fehler bei Feldbereinigung"
End Function

Public Function FeldReinigung(FeldWert)
    If IsNull(FeldWert) Then Exit Function
   
    FeldWert = Trim(FeldWert)
    ' Zeilenumbrüche und Leerzeichen am Anfang entfernen
    While InStr(1, FeldWert, vbNewLine) = 1
        FeldWert = LTrim(Mid(FeldWert, 3))
    Wend
   
    ' Zeilenumbrüche und Leerzeichen am Ende entfernen
    While (InStrRev(FeldWert, vbNewLine) = Len(FeldWert) - 1) And (Len(FeldWert) > 1)
        FeldWert = RTrim(Left(FeldWert, Len(FeldWert) - 2))
    Wend
   
    ' Leere Textfelder durch Access-Wert NULL ersetzen
    FeldReinigung = IIf(FeldWert = vbNullString, Null, FeldWert)
End Function
Argumente der Funktion/Prozedur

FeldReinigung()

FeldWert

Einzelner Feldinhalt eines Memo- oder Textfeldes

FeldBereinigung

Tabelle

Tabelle oder aktualisierbare Abfrage, welche die zu bereinigenden Felder enthält

Feldnamen

Beliebig Anzahl von Namen der Felder, die in der Tabelle überarbeitet werden sollen. Jede wird mit einer einzelnen Aktualisierungsabfrage bearbeitet.

Rückgabewert

Keine Rückgabewerte.

Hinweis

Die Bearbeitung von Tabellen außerhalb der aktuellen Datenbank gelingt mit Abfragen oder eingebundenen Tabellen.

Die Funktion FeldBereinigung() verwendet den Transaktionsschutz der Datenbank, d.h. bricht die Funktion wegen eines Fehlers ab, wird die gewählte Tabelle überhaupt nicht verändert.

Anwendungsgebiete, Fehler und Warnungen

Anwendung ist nur bei MEMO- und Textfeldern sinnvoll, da nur diese Zeilenumbrüche und Leerzeichen enthalten. Der Index der bearbeiteten Felder muss NULL-Werte zulassen. Insbesondere Felder mit Primärschlüssel und leeren Feldinhalten führen daher regelmäßig zum Abbruch der Bearbeitung.