Hi!
Ich habe folgendes Problem:
Ich habe ein Formular dass ein anderes aufruft um eingaben zu
machen. Das erste MUSS aber „warten“ bis das zweite
geschlossen ist (also entweder die eingaben fertig sind oder
abgebrochen wurde)
Eigentlich ist das kein Problem.
Die Frage ist nur, an welches Event du den Aufruf der einzelnen Forms koppelst.
Im Normalfall ist das erste Formular das Start-Formular, d.h. bei Aufruf der .exe erscheint das erste Formular. Nun muss irgendwas passieren, damit das zweite Formular aufgerufen wird, z.B. der Maus-Klick auf einen Command-Button. In der entsprechenden Sub setzt du dann den Befehl zum Aufruf des zweiten Formulars ab. Dieses Formular muss modal aufgerufen werden, damit die Ausführung des Codes für das erste Formular unterbrochen wird.
Das wäre dann etwa so:
Name des Formulars 1 ist ANTON, Name des Formulars 2 ist BERTA
Auf ANTON befinden sich die Command-Buttons WEITER und ENDE
Auf BERTA befinden sich die Command-Buttons SPEICHERN und ENDE
ANTON ist Start-Formular
Code:
im Code für ANTON:
Private Sub Weiter_Click()
BERTA.Show vbModal
End Sub
Private Sub Ende_Click()
End
End Sub
im Code für BERTA:
Private Sub Ende_Click()
Unload BERTA
End Sub
Wenn du das laufen lässe, wird das Formular ANTON angezeigt. Erst durch Anklicken von WEITER erscheint BERTA. Wenn BERTA sichtbar ist, kannst du nicht an ANTON heran.
Alternativ wäre der Start des ersten Formulars mit sofortigem Aufruf des zweiten Formulars.
Code:
im Code für ANTON:
Private Sub ANTON_Load()
ANTON.Show
BERTA.Show vbModal
End Sub
Private Sub Weiter_Click()
BERTA.Show vbModal
End Sub
Private Sub Ende_Click()
End
End Sub
im Code für BERTA:
Private Sub Ende_Click()
Unload BERTA
End Sub
Das Formular ANTON wird geladen und noch vor Beendigung des Sub ANTON_Load auf dem Bildschirm angezeigt. Dann wird BERTA modal angezeigt, d.h. BERTA überlagert ANTON und ANTON kann nicht aktiv werden. Mit Mausklick auf ENDE auf dem Formular BERTA wird BERTA beendet und ANTON aktiv.
Das wär’s!
Grüße
Heinrich