MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access - Code Archiv
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Umfrageergebnis anzeigen: Wie gefällt die Lösung?
Sehr gut 2 66,67%
Gut 1 33,33%
Befriedigend 0 0%
Ich habe eine bessere Lösung 0 0%
Teilnehmer: 3. Diese Umfrage ist geschlossen

Antworten
Ads
Themen-Optionen Ansicht
Alt 22.04.2013, 13:52   #1
JPA
MOF Koryphäe
MOF Koryphäe
Strahlen Codebeispiel - Verwenden von OK/Abbrechen/Übernehmen Schaltflächen in Formularen

Aufgabenstellung:
Der Wunsch ist die drei klassischen Befehlsschaltflächen OK / Abbrechen / Übernehmen in einem Access-Formular abzubilden mit entsprechenden Funktionalitäten:

OK - Befehlsschaltfläche: Datensatz speichern (wenn nötig) und Fenster schliessen (wenn erfolgreich gespeichert)
Abbrechen - Befehlsschaltfläche: Formular schliessen ohne aktuelle Änderungen im Datensatz zu speichern
Übernehmen - Befehlsschaltfläche: Datensatz speichern und die Übernehmen - Befehlsschaltfläche deaktivieren

Mit richtigen Ereignisprozeduren des Formulars, lassen sich die Anforderungen gut lösen.
Die Prozeduren die sich im Formular frmProdukt in der datei 'SchaltflächenOkAbbrechenÜbernehmen.mdb' befinden, können in jedes Formular übertragen und genutzt werden.
Anpassungen sind nur dann notwendig, wenn bereits die Ereignisprozeduren verwendet worden sind.
Code:

Option Compare Database
Option Explicit

    Dim SaveWithClose As Boolean

Private Sub cmdOK_Click()
    If Me.Dirty Then
        SaveWithClose = True
        CommandSaveRecord Me
    Else
        CloseForm Me.Name
    End If
End Sub

Private Sub cmdCancel_Click()
    If Me.Dirty Then
        Beep
        If MsgBox("Der Datensatz ist noch nicht gespeichert, die von Ihnen vorgenommenen Änderungen gehen jetzt verloren." & vbNewLine & vbNewLine & "Möchten Sie das Formular trotzdem schließen?", vbYesNo + vbDefaultButton2 + vbExclamation, "Datenspeicherung") = vbNo Then Exit Sub
        Me.Undo
    End If
    CloseForm Me.Name
End Sub

Private Sub cmdApply_Click()
    SaveWithClose = False
    CommandSaveRecord Me
End Sub

Private Sub Form_Current()
    SetControlProperty Me.cmdApply.Properties("Enabled"), False, Me.cmdCancel
    SaveWithClose = False 'Nicht wirklich notwendig (aber ... sicher ist sicher :-)
End Sub

Private Sub Form_Dirty(Cancel As Integer)
    Me.cmdApply.Enabled = True
End Sub

Private Sub Form_Undo(Cancel As Integer)
    SetControlProperty Me.cmdApply.Properties("Enabled"), False, Me.cmdCancel
    SaveWithClose = False
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Me.GeaendertAm = Now()
End Sub

Private Sub Form_AfterUpdate()
    SetControlProperty Me.cmdApply.Properties("Enabled"), False, Me.cmdCancel
    If SaveWithClose Then CloseForm Me.Name 
End Sub

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    SaveWithClose = False
End Sub
In der Datei im Anhang ist der Programmcode auch kommentiert.
Gruß
JPA
Angehängte Dateien
Dateityp: zip schaltflächen_ok_abbrechen_uebernehmen.zip (28,9 KB, 79x aufgerufen)

__________________


MS-Office-Inside
JPA ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.