Zugriff auf zwei parallel geöffnete Formen

Hallo
habe ein grundlegendes Problem, welches mich einen Riesenschritt weiterbringt, wenn es sich lösen lässt.

Und zwar habe ich eine 1.Form, in welcher ich Daten auswerte,
diese liefern immer wieder verschiedene Ergebnisse X als Strings,
soll heissen in X steht immer was anderes, d.h. die Variable verändert sich durch eine Schleifenoperation.

Nun gibt es eine 2.Form, welche diese Ergebnisse in einer Liste darstellen soll. Wie kombiniert man das, das die eine Form berechnet, die andere aber die Ergebnisse darstllen soll.
Wegen mir kann diese 2.Form gleich am Anfang geöffnet werden und ich sehe, wie die X-Werte in die Liste laufen oder am Ende (was aber schwieriger sein dürfte, da ich dann die verschiedenen X-Werte sammeln muß.

Jedenfalls kennt die 1.Form nicht die Liste der 2.Form, so das ich die Daten nicht einfach so zuweisen kann.
Die Liste kann aber nicht in die 1.Form!!!, falls jmd diesen Lösungsansatz erwähnen sollte.

Ich hoffe das Problem wird verständlich und es gibt eine Lösung dafür.
Schliesslich gibt es öfter eine Darstellung eines Ergebnisses in Form einer Liste am Ende.

Mfg Werner

Hallo, Werner!

Und zwar habe ich eine 1.Form, in welcher ich Daten auswerte,

Sei genannt frmForm1…

diese liefern immer wieder verschiedene Ergebnisse X als
Strings,
soll heissen in X steht immer was anderes, d.h. die Variable
verändert sich durch eine Schleifenoperation.

Nun gibt es eine 2.Form, welche diese Ergebnisse in einer
Liste darstellen soll. Wie kombiniert man das, das die eine

Sei genannt frmForm2. Auf dieser sei Dein Listenfeld genannt lstListeAufForm2. Über was reden wir hier? VB? Dann kommen neue Einträge mit lstListeAufForm2.AddItem "irgendeinText hinzu; bei Access würdest Du jedesmal die komplette Datenquelle als lstListeAufForm2.RowSource angeben.

Form berechnet, die andere aber die Ergebnisse darstllen soll.
Wegen mir kann diese 2.Form gleich am Anfang geöffnet werden
und ich sehe, wie die X-Werte in die Liste laufen oder am Ende
(was aber schwieriger sein dürfte, da ich dann die
verschiedenen X-Werte sammeln muß.

Du hast also in frmForm1 irgendeine Prozedur, die schleifenmäßig Werte für X erzeugt, also z. B. so:

For y = 1 to 100
 X="Jetzt bin ich bei "& CStr(y)
 frmForm2.lstListeAufForm2.AddItem X
 ' Markieren des letzten Eintraggs
 frmForm2.lstListeAufForm2 = X
 frmForm2.Repaint ' oder irgendwas, um bei langen Laufzeiten
 ' die Aktionen zwischendrin auch darzustellen; könnte auch mit 
 ' .Refresh (oder bei Access mit Liste.Requery) funktionieren.
Next y

Jedenfalls kennt die 1.Form nicht die Liste der 2.Form, so das
ich die Daten nicht einfach so zuweisen kann.

Doch, das sollte sie tun, sobald die 2. Form geöffnet ist. Im Zweifelsfall also vorher die Form explizit öffnen.

Gruß, Manfred

Hi
Hi,
achso geht das, indem man noch die Form, wo die Liste sich befindet voranstellen muß. Wenn das klappt, haben sich glaub ich eine Menge meiner Probleme für die nächste Zeit gelöst.
Vielen Dank fürs erste.
Was ist mit der Markierung meines DataGrids??? Kennst du den Befehl dafür???

Mfg Werner

Hi, Werner!

Was ist mit der Markierung meines DataGrids??? Kennst du den
Befehl dafür???

Me.DBGrid1.SelBookmarks.Add DBGrid1.RowBookmark(Me.DBGrid1.Row)

markiert die aktuelle Zeile bzw. fügt diese Zeile den Markierungen hinzu; die erste Zeile markierst Du mit .RowBookmark(0)

Hoffe, das war’s.

Gruß, Manfred

btw
Hallo Werner

achso geht das, indem man noch die Form, wo die Liste sich
befindet voranstellen muß. Wenn das klappt, haben sich glaub
ich eine Menge meiner Probleme für die nächste Zeit gelöst.

Indem du die „Form“ voranstellst, kannst du auch auf eigene Funktionen und Variablen, welche in dieser Form stehen zugreiffen.

MfG Peter(TOO)

Hi
ja hoffe ich auch, das es das jetzt ist.
Was bedeutet eigentlich dieses Me. …
Das habe ich auch noch nie verwendet. Macht das irgendetwas besonderes???

Mfg Werner

Hi, Werner!

ja hoffe ich auch, das es das jetzt ist.
Was bedeutet eigentlich dieses Me. …
Das habe ich auch noch nie verwendet. Macht das irgendetwas
besonderes???

Nein, ist nur der Verweis auf die gerade aktuelle Form, in der der Code ausgeführt wird. Ist eigentlich (zumindest mal in obigem Beispiel) auch nicht nötig. Ich verwende es aber, weil ich es irgendwie übersichtlicher finde und zum anderen automatisch die vorhandenen Steuerelemente nach Tippen vom „.“ automatisch angezeigt werden und ich sie nicht ausschreiben muss. (Das geht natürlich auch mit [Strg]+[Space]…)

Gruß, Manfred