Eine Benachrichtigung mit Rückgängig anzeigen
In diesem Tutorial bauen Sie eine Liste von Regeln. Wird eine Regel gelöscht, erscheint die Benachrichtigung „Regel gelöscht“ mit Rückgängig, und Rückgängig holt die Regel zurück.
Voraussetzungen
- Microsoft 365 Access oder Access Runtime, in 32 oder 64 Bit, mit der WKL Forms Object Library 1.34 oder höher, installiert und für den aktuellen Windows-Benutzer registriert (Freigegebenes Paket installieren).
- Eine neue oder vorhandene Datenbank an einem vertrauenswürdigen Speicherort.
Schritte
1. Beispieltabelle anlegen
Fügen Sie die Prozedur in ein Standardmodul ein und führen Sie sie einmal im Direktbereich aus
(CreateNoteSample):
Public Sub CreateNoteSample()
With CurrentDb
.Execute "CREATE TABLE tblRegel (ID LONG CONSTRAINT PK_Regel PRIMARY KEY, Name TEXT(50), Geloescht YESNO)"
.Execute "INSERT INTO tblRegel VALUES (1, 'Mahnung nach 30 Tagen', False)"
.Execute "INSERT INTO tblRegel VALUES (2, 'Rabatt ab 1000 EUR', False)"
End With
End Sub
2. Verweis setzen
Wählen Sie im VBA-Editor Extras › Verweise und setzen Sie das Häkchen bei WKL Forms x.y Object
Library. WklToast ist kein Steuerelement; Access setzt den Verweis daher nicht von
selbst.
3. Formular erstellen
Erstellen Sie ein Endlosformular frmRegeln mit der Datenherkunft
SELECT * FROM tblRegel WHERE Not Geloescht, einem an Name gebundenen Textfeld Name und
einer Befehlsschaltfläche cmdLoeschen (Beschriftung Löschen) im Detailbereich.
4. Modul schreiben
Option Compare Database
Option Explicit
Private WithEvents mToast As WklToast
Private Sub Form_Load()
Set mToast = New WklToast
End Sub
Private Sub cmdLoeschen_Click()
Dim id As Long, ruleName As String
If IsNull(Me!ID) Then Exit Sub
id = Me!ID
ruleName = Me!Name
CurrentDb.Execute "UPDATE tblRegel SET Geloescht = True WHERE ID = " & id, dbFailOnError
Me.Requery
mToast.Show "Regel """ & ruleName & """ gelöscht.", wtkSuccess, , "Rückgängig", id
End Sub
Private Sub mToast_Action(ByVal Id As Long, ByVal Tag As Variant)
CurrentDb.Execute "UPDATE tblRegel SET Geloescht = False WHERE ID = " & Tag, dbFailOnError
Me.Requery
End Sub
5. Ausprobieren
Öffnen Sie das Formular und klicken Sie bei der ersten Regel auf Löschen: Die Regel verschwindet aus der Liste, und unten rechts im Access-Fenster erscheint eine grüne Benachrichtigung. Klicken Sie innerhalb von 8 Sekunden auf Rückgängig oder drücken Sie Strg+Umschalt+Z: Die Regel ist zurück. Der Fokus bleibt die ganze Zeit im Formular.
Erwartetes Ergebnis
- Jedes Löschen zeigt eine Benachrichtigung; nach 8 Sekunden schließt sie sich selbst.
- Rückgängig über den Link, mit Strg+Umschalt+Z oder mit F6 und anschließend der Eingabetaste holt die Regel zurück.
- Eine Benachrichtigung bleibt sichtbar, wenn das Formular geschlossen wird, ihr Rückgängig bewirkt dann aber nichts mehr: Das Modul eines geschlossenen Formulars hört nicht mehr zu. Diesen Fall deckt
ActionFunctionab (siehe die Anleitung).
Nächste Schritte
- Nach einer Aktion eine Benachrichtigung mit Rückgängig anzeigen:
ActionFunction, Benachrichtigungen in der Ecke eines Formulars.