Neuigkeiten:

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

Mobiles Hauptmenü

Feld muss ausgefüllt werden erzwingen

Begonnen von datekk, Januar 15, 2016, 20:38:09

⏪ vorheriges - nächstes ⏩

julle

Zitat von: MaggieMay am Februar 05, 2016, 14:03:12
Mit dem frmStart hat es ja nichts zu tun, wenn du das Speichern in den Bearbeitungsformularen kontrollieren willst.

Was hält dich davon ab, es einfach mal auszuprobieren?
Aktiviere das Ereignis "Beim Laden" und schreibe die folgende Codezeile in die Ereignisprozedur:
bolSchliessenErlaubt = False

Die Überprüfungen in den einzelnen Formularen funktioniert tadellos (dort ist jeweils die bolSchliessenErlaubt - Variable hinterlegt), wenn ich das nun geschlossen hab und auf das Startformular zurückkehre (das ja immernoch geöffnet ist) dann kann ich das ganz einfach schließen, auch mit dem Code beim laden.


MaggieMay

Zitatdort ist jeweils die bolSchliessenErlaubt - Variable hinterlegt
Das hattest du bis jetzt nicht erwähnt, daher dachte ich es gäbe nur eine globale Variable, so wie du es in #40 gezeigt hattest.

Warum willst du denn das Schließen des Startformulars verhindern, werden dort ebenfalls Daten eingegeben?

Zitatauch mit dem Code beim laden.
Was willst du damit sagen? Beim Laden wird ja nicht das Schließen verhindert.
Freundliche Grüße
MaggieMay

MaggieMay

Nachtrag:
Vielleicht habe ich dich doch noch richtig verstanden.

Zitat von: julle am Februar 05, 2016, 10:13:14
komme ich ja wieder auf "frmStart" zurück, in diesem Moment kann ich das Formular "frmStart" aber wieder normal schließen, also der Code greift nicht mehr.
Der Code "greift" schon, nur die Variable steht ja durch das letzte Schließen auf True.

Das kannst du folgendermaßen lösen:

Private Sub Form_Unload(Cancel As Integer)
    If bolSchliessenErlaubt = False Then
        MsgBox "Formular bitte per Button verlassen" & vbCrLf & vbCrLf & _
                "Die Anwendung kann nur über den Button <Beenden> geschlossen werden"
        Cancel = True
    End If
    bolSchliessenErlaubt = False
End Sub

Im Load-Ereignis kannst du den Befehl dann wieder entfernen.
Freundliche Grüße
MaggieMay

julle

Zitat von: MaggieMay am Februar 05, 2016, 15:59:02
Nachtrag:
Vielleicht habe ich dich doch noch richtig verstanden.

Hast du, vielen Dank! :)
So funktioniert das, macht auch vollkommen Sinn!

viele Grüße!

MaggieMay

"ordentlich" programmiert sähe das dann so aus:
Private Sub Form_Unload(Cancel As Integer)
    If bolSchliessenErlaubt = False Then
        MsgBox "Formular bitte per Button verlassen" & vbCrLf & vbCrLf & _
                "Die Anwendung kann nur über den Button <Beenden> geschlossen werden"
        Cancel = True
    Else
        bolSchliessenErlaubt = False
    End If
End Sub
Freundliche Grüße
MaggieMay