Problem: Innerhalb einer For…Next-Anweisung wird eine Bedingung abgefragt. Wenn diese einen bestimmten Wert hat, soll sie manuell durch Eingabe in einer dann erscheinenden Form geändert/angepasst werden.
Meine For…Next-Anweisung wartet nur leider nicht auf meine Änderung in der anderen Form, sondern macht artig weiter.
Jemand ne flagfreie Lösung? Ne Schleife durchlaufen lassen, bis alles eingegeben ist, find ich doof.
sie zu beenden bringt mich nicht weiter. Die for…Next muss weiter laufen, bis alles abgearbeitet ist, nur eben mit Pause, bis die Eingaben im anderen Fenster erledigt sind…
Problem: Innerhalb einer For…Next-Anweisung wird eine
Bedingung abgefragt. Wenn diese einen bestimmten Wert hat,
soll sie manuell durch Eingabe in einer dann erscheinenden
Form geändert/angepasst werden.
Meine For…Next-Anweisung wartet nur leider nicht auf meine
Änderung in der anderen Form, sondern macht artig weiter.
Du musst die Form modal bzw. als Dialog öffnen, dann wartet Dein Programm auch brav…
Hi Tom,
Du brauchst innerhalb Deiner For-Next-Schleife etwa folgendes:
for …
Prüfung ob Daten OK
falls nicht
globale variable leeren
Fenster zum Korrigieren öffnen
do until globale variable gesetzt ist
doEvents()
loop
next
In dem neuen Fenster korrigierst Du die Daten und setzt die Globale Variable.
DoEvents ist hierbei wichtig, nicht vergessen.
Bei Fragen was das ist, bitte nochmal fragen nur grob: Das Programm läuft solange in der Schleife und mit DoEvents erlaubst Du dem System noch etwas anderes zu machen, bspw. auf Tastendrücke zu reagieren oder auch daß andere Programme laufen können … in Deinem Fall darfst Du Eingaben in dem neuen Fenster machen.
Die zweite Schleife unterbricht den Ablauf solange bis die Variable gesetzt wurde und macht dann wieder weiter.
Du musst die Form modal bzw. als Dialog öffnen, dann wartet
Dein Programm auch brav…
Gruß, Manfred
Hallo Manfred,
ich hab mich belesen, die form mit der showmodal-Eigenschaft scheint mir die beste Möglichkeit zu sein.
Gefunden habe ich das…
frmBeispiel.Show([modal], [Ownerform])
hmm, ich hab in dem Fall keine Ownerform, da die Prozedur in einem Modul ausgeführt wird. Wo muss ich die Eigenschaft setzen, im Code der sich öffnenden Form oder in der Prozedur, in der die For…Next läuft?
Rainer, warum „1“ ?
Versuche noch zu verstehen was es da tut…
weil die Funktion einen boolschen Wert benötigt. Du darfst auch VbModal ausschreiben, wenn Du das übersichtlicher findest, übergeben wird dann aber auch eine 1. Das ist bei allen Konstanten so, hinter VbYellow verbirgt sich auch nur ein QbColor(14).