Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: smily68 am August 05, 2013, 20:23:35

Titel: Speichern eines Datensatzes nur wenn Bedingung erfüllt ist
Beitrag von: smily68 am August 05, 2013, 20:23:35
Hallo

Ich bin am Ueberlegen wie ich folgendes Problem lösen kann:

Ich schreibe ein Bibliothek Programm. Im Formular für das Erfassen von Büchern die ausgelehnt werden, mache ich eine Prüfung, ob das entsprechende Buch nicht schon ausgelehnt ist. Wenn ja kommt eine Meldung, danach möchte ich diesen Datensatz löschen. Das Formular besteht aus einem Hauptformular wo der Ausleiher und das Datum erfasst wird. In einem Unterformular werden die Bücher erfasst. Beim Auswahlfeld für die Bücher habe ich folgenden Code hinterlegt:

Private Sub PruefungAusgelehnt()
'Ueberprüft ob das Buch ausgelehnt ist

    Dim blnAusgeliehen

    strText = "Das Buch ist bereits ausgeliehen"
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT * FROM tblBuch WHERE buch_ID =" & Me.ausleihPos_Buch_IDF, dbOpenSnapshot)
    blnAusgeliehen = rs!buch_Ausgeliehen
   
    If blnAusgeliehen = True Then
        MsgBox (strText)
        db.Execute ("Delete * FROM tblAusleihSelect WHERE ausleih_ID = " & Me!ausleihPos_Buch_IDF)
        Me.Refresh
    End If
    Set db = Nothing

End Sub

Leider bleibt mit diesem Code der Datensatz bestehen. Ich möchte eigentlich das ein Buch das ausgelehnt ist nicht erfasst werden oder gespeichert werden kann. Wer kann mir helfen?

Gruss Daniel
Titel: Re: Speichern eines Datensatzes nur wenn Bedingung erfüllt ist
Beitrag von: bahasu am August 05, 2013, 20:34:43
Hi,

mit dem Ereignis "Vor Aktualisierung" kommst Du mit weniger Aufwand an Dein Ziel, da Du dort Deine Abfrage vor dem Speichern machen kannst.

Wenn die erfüllt ist, kannst Du mit cancel + Me.Undo die Eingaben rückgängig machen.

Harald

PS
Am besten im Ereignis "vor Aktualisierung" vom Steuerelementes den Test durchführen, dann ersparst Du Dir ggf. auch die Eingaben von weiteren Infos.
Titel: Re: Speichern eines Datensatzes nur wenn Bedingung erfüllt ist
Beitrag von: DF6GL am August 05, 2013, 20:48:00
Hallo,



noch besser wäre, ausgeliehene Bücher gleich gar nicht zur Auswahl (z. B. mit/in  einem Kombifeld) zu stellen...
Titel: Re: Speichern eines Datensatzes nur wenn Bedingung erfüllt ist
Beitrag von: smily68 am August 05, 2013, 21:28:36
Danke, das war sehr aufschlussreich. Diesen Befehl Me.Undo kannt ich noch nicht. Ich werde auch in Auswahlliste alle Bücher, die ausgeliehen sind rausfiltern.

Gruss Daniel