Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Versehentliches Ändern von Datensätzen verhindern

Man kann Daten in zwei Gruppen einteilen: Einerseits gibt es solche Daten wie Adressen, Artikellisten uns so weiter, die man immer wieder mal ändert, ergänzt oder löscht. Andererseits gibt es Datensätze, die zum Beispiel Rechnungs-, Bestell- oder ähnliche Daten enthalten und die man nach dem Ausdrucken und der anschließenden Versendung nicht mehr ändern möchte.

Mit einer kleinen Prozedur können Sie verhindern, dass Sie aus Versehen einen bereits fertig bearbeiteten Datensatz im Formular ändern und somit möglicherweise wichtige Daten verfälschen.

Beispieldatenbank

Das Formular Bestellungen der Datenbank Nordwind dient als Beispiel für die Bearbeitungssperre. Damit Sie für jede Bestellung festlegen können, ob der Datensatz bearbeitet werden darf oder nicht, legen Sie in der Tabelle Bestellungen ein neues Feld namens AendernSperren mit dem Felddatentyp Ja/Nein an. Öffnen Sie auch die dem Formular zugrunde liegende Abfrage Bestellungen Abfrage und fügen Sie dort das Feld AendernSperren hinzu.

Nach dem Speichern der Tabelle öffnen Sie das Formular Bestellungen in der Entwurfsansicht und ziehen das Feld AenderungSperren aus der Feldliste an eine beliebige Stelle im Formular (siehe Abbildung 1).

Abbildung 1: Bestellformular mit Funktion zum Sperren von Änderungen

Wenn das Konrtollkästchen aktiviert ist, soll das Ändern von Daten verhindert werden. Die Überprüfung des Kontrollkästchens nehmen Sie also am besten direkt bei der Anzeige eines Datensatzes vor. Die Ereignisprozedur setzen Sie dementsprechend für die Eigenschaft Beim Anzeigen des Formulars ein:

Private Sub Form_Current()

    If Me.AenderungSperren = True Then

        Me.AllowEdits = False

    Else

        Me.AllowEdits = True

    End If

End Sub

Sie können allerdings immer noch Daten in dem Formular ändern, wenn Sie das Kontrollkästchen soeben erst aktiviert haben. Wenn der Datensatz noch nicht aktualisiert ist, kann die Sperrung der Änderungen auch noch nicht aktiviert sein. Damit dies sofort beim Ankreuzen des Kontrollkästchens passiert, fügen Sie die folgende Prozedur für die Ereigniseigenschaft Nach Aktualisierung des Kontrollkästchens ein:

Private Sub AenderungSperren_AfterUpdate()

    Dim AktuelleBestellung As Long

    AktuelleBestellung = Me![Bestell-Nr]

    Me.Requery

    Me.RecordsetClone.findfirst "[Bestell-Nr] = " & AktuelleBestellung

    Me.Bookmark = Me.RecordsetClone.Bookmark

End Sub

Auf die gleiche Weise können Sie auch das Löschen und das Anfügen von Datensätzen verhindern. Dazu verwenden Sie die Eigenschaften AllowDeletions und AllowAdditions.

Fügen Sie einfach die entsprechenden Eigenschaftszuweisungen in die Ereignisprozedur Beim Anzeigen des Formulars ein. Diese beiden Eigenschaften sind gerade in Bezug auf das Unterformular wichtig, da Sie mit ihnen das Hinzufügen und Entfernen von Rechnungspositionen verhindern können.

Sperrung nach dem Ausdrucken aktivieren

Die Sperrung soll normalerweise nach dem Ausdruck beziehungsweise dem Versenden oder Archivieren desw Schriftstücks geschehen. Deshalb ist es praktisch, wenn beim Drucken der Rechnung automatisch das Kontrollkästchen AendernSperren aktiviert wird.

Dazu fügen Sie der Prozedur RechnungDrucken_Click direkt hinter dem Deklarationsteil die folgenden zwei Zeilen hinzu:

Me!AenderungSperren = True

AenderungSperren_AfterUpdate

Auf diese Weise setzt die Prozedur zunächst den Wert des Kontrollkästchens auf den Wert True und aktualisiert dann den Datensatz, sodass der Benutzer den Datensatz ab sofort nicht mehr ändern kann.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.