Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Speichern eines Datensatzes nur wenn Bedingung erfüllt ist

Begonnen von smily68, August 05, 2013, 20:23:35

⏪ vorheriges - nächstes ⏩

smily68

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

bahasu

#1
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.
Servus

DF6GL

Hallo,



noch besser wäre, ausgeliehene Bücher gleich gar nicht zur Auswahl (z. B. mit/in  einem Kombifeld) zu stellen...

smily68

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