Variablenübergabe an Formular

Hallo!

Ich habe ein kleines Problem:
Wie kann ich eine Variable, die ich in einem Formular1 definiert habe, als Ergebnis auf Formular2 anzeigen lassen?
Bei mir erkennt er die Variable c von Formular1 auf Formular2 nicht mehr.

Vielen Dank für Eure Hilfe!

Gruß,

Andreas

geht z.B. so:

Wie kann ich eine Variable, die ich in einem Formular1
definiert habe, als Ergebnis auf Formular2 anzeigen lassen?
Bei mir erkennt er die Variable c von Formular1 auf Formular2
nicht mehr.

Hallo Andreas
Du kannst zum einen die variable Public oder Friend machen,
oben in den Deklarationen des Forms:
Public c as Long (oder sonstwas)

Und dann im zweiten Formular die Variable komplett benennen, der Name des ersten Formulars sei mal frm1:
meineVariable = frm1.c
Dann muss es funktionieren.

Man kann auch Variablen als Public in einem Standardmodul (.bas, im Deklarationsabschnitt) definieren. Dann sind sie überall gültig.
Das ganze findest Du allerdings auch in der Hilfe, bzw. Onlinehilfe.
Eine andere Frage ist noch, zu welchem Zeitpunkt die Variable aus frm1 gelesen werden soll: Zum Beispiel beim „Form.Load“ oder „.Activate“ Ereignis.
MfG
Matthias

Hallo, Andreas!

Ergänzend zu Matthias: Ich würde die Variante bevorzugen, die gewünschte Variable in einem globalen Modul zu halten. Das hat folgenden Vorteil:

Wenn Du Form2 von Form1 aus aufrufst und dort im Form2_Load auf die sichtbare Variable aus Form1 zugreifst, geht das noch.

Wenn Du aber beispielsweise aus einem ganz anderen Formular Form1 als Dialog aufrufst, welcher Deine Variable setzen soll, dann Form1 wieder schließt und dann erst Form2 aufrufst, wäre die Variable aus Form1 nicht mehr bekannt bzw. u. U. mit dem falschen Wert belegt.

Insofern würde ich den „Datentransfer“ zwischen Formularen, die nicht mit absoluter Sicherheit gleichzeitig geöffnet sind (wie z. B. Formular und enthaltenes Unterformular unter Access), über globale Variablen in einem globalen Modul erledigen.

Gruß, Manfred