Supportnet / Forum / Datenbanken
[Acess] Daten von Formular zu Formular übergeben
Frage
Hi Leute,
ich muß die eingebenen Daten von Form 1 in Form 2 übergeben. Konktret:
Form 1: Der Anwender wählt in einer Combobox aus. Benötigt wird Spalte 1(in VBA = ".Column(0)").
Nun soll Form 2 geöffnet und der Wert in ein Textfeld eingetragen werden. Danach muß noch weiterer VBA-Code ausgeführt werden.
Wie geht das?
Danke!
Antwort 1 von trekking
So:
docmd.openform "Form2"
forms!Form2!DeinTextfeld=
forms!aktuellesFormular!KomboBoxName.column(0)
Das ganze trägst du in das Ereignis Nach aktualisieren ein.
Dann sollte es gehen.
Wenn du das so nicht machen willst sondern dein Formular 1 erst schließen möchtest dann so:
Du schreibst ein Modul mit einer Funktion die nachfolgendes macht:
public function Form2(Textfeld as z.B integer)
docmd.openform "Form2"
forms!Form2!DeinTextfeld= Textfeld
end function
Hinter deinem Button schließen legst du folgendes ereignis:
private sub schließen_click()
dim Textfeld as integer
Textfeld=Me!KomboBoxName.column(0)
docmd.close
call Form2((Textfeld))
end sub
Viel Erfolg
Gruß trekking
docmd.openform "Form2"
forms!Form2!DeinTextfeld=
forms!aktuellesFormular!KomboBoxName.column(0)
Das ganze trägst du in das Ereignis Nach aktualisieren ein.
Dann sollte es gehen.
Wenn du das so nicht machen willst sondern dein Formular 1 erst schließen möchtest dann so:
Du schreibst ein Modul mit einer Funktion die nachfolgendes macht:
public function Form2(Textfeld as z.B integer)
docmd.openform "Form2"
forms!Form2!DeinTextfeld= Textfeld
end function
Hinter deinem Button schließen legst du folgendes ereignis:
private sub schließen_click()
dim Textfeld as integer
Textfeld=Me!KomboBoxName.column(0)
docmd.close
call Form2((Textfeld))
end sub
Viel Erfolg
Gruß trekking
Antwort 2 von firefox
Richtig sauber ist das nicht gelöst ... sinnvoller ist es das zweite Form entweder mit OpenArgs zu füttern (bei .open), oder gleich eine Routine im Form zu haben die den Wert annimmt und dann selbst verarbeitet.
Spätestens wenn eines von den Formularen / Control umbenannt wird empfinde ich den Aufwand überschauberer.
Spätestens wenn eines von den Formularen / Control umbenannt wird empfinde ich den Aufwand überschauberer.
Antwort 3 von trekking
@firefox
Poste das mal genauer.
Poste das mal genauer.
Antwort 4 von firefox
Variante 1 (wenn das ursprüngliche Form geöffnet bleiben soll, bzw. danach wieder den Focus erhalten soll.
Variante 2: (Wenn das ursprüngliche Form geschlossen werden kann)
Vom Ergebnis ist es das gleiche, empfinde das nur "sauberer" gelöst. Einen hauch von Objektorientiert eben ;)
Dim frm As Form_frm1
´ Form aufrufen
Set frm = New Form_frm1
frm.MeineProperie = Wert
frm.Visible = True
Do While frm.Visible
DoEvents
Loop
Set frm = Nothing
Variante 2: (Wenn das ursprüngliche Form geschlossen werden kann)
docmd.openform "frm1", OpenArgs:=Wert
docmd.close
Vom Ergebnis ist es das gleiche, empfinde das nur "sauberer" gelöst. Einen hauch von Objektorientiert eben ;)

