Supportnet Computer
Planet of Tech

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

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.

Antwort 3 von trekking

@firefox
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.

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 ;)