Hallo Mafred X, ich glaube, wir reden hier aneinander vorbei. Ich habe mein kleines, abstraktes Projekt ein wenig erweitert, um es dir mal zu veranschaulichen. Eine Bitte an dieser Stelle. Betrachte dieses gleich von mir dagestelltes Projekt nicht als "mein" Projekt, sondern betrachte es als ein Abstraktum. Für den Fall, dass wir wieder an uns aneinander vorbeireden.
Nun, gehen wir mal Schritt für Schritt durch.
Dieses kleine Projekt hat insgesamt drei Formen(Form1, Form2 und Form3), eine MDIForm1 und dann ein Modul.
MDIForm1:hier steht nichts. Es ist leer.
'...
'...
'... Form1:stellen wir uns nun vor, in der Form1 ist eine Listview (die Listview wird in diesem Fall durch die Schaltfläche Cmd_Form1 ersetzt - der _Click()-Effekt ist überall gleich) worüber nun sämtliche Kontaktdaten aus der Datenbank ausgegeben werden. Der/Die Anwender/in wählt nun mit einem Doppelklick auf die Listview (Dblclick()) einen odere mehrere Konakte aus.
Wie gesagt, wir stellen uns vor, dass die Schaltfläche jetzt einfach mal die Listview darstellt.
'Form1.MDIChild = True!!!
Private Sub Form_Load()
Call Form1_modul(Me)'Sprachmodul aufrufen und ausgeben
End Sub
Private Sub Cmd_Form1_Click()
Dim oForm As New Form2
Set oForm = New Form2
With oForm
.Show
End With
End Sub Form2: auf der Form2 ist eine weitere Schaltfläche Cmd_form2 plaziert. Wir tun nun so, als sei diese Schaltfläche eine Abspeicher-Taste.
Des Weiteren ist eine Textbox Text1_form2 plaziert worden. Warum? Dazu kommen wir in Form3.
'Form2.MDIChild = True!!!
Private Sub Form_Load()
Call Form2_modul(Me)'Sprachmodul aufrufen und ausgeben
End Sub
Private Sub cmd_form2_Click()
'So möchte ich dem/der Anwender/in indirekt dazu zwingen,
'dass er/sie den momentanen Datensatz abarbeitet.
Form3.Show vbModal
End Sub Form3:auch hier ist eine Schaltfläche Cmd_Form3 und eine Textbox Text1_Form3 plaziert.
'Form3.MDIchild = False
Private Sub Form_Load()
Dim T As String
Call Form3_modul(Me)'Sprachmodul aufrufen und ausgeben
End Sub
Private Sub Cmd_Form3_Click()
Dim oForm As Form2
Set oForm = Form2
T = Text1_form3.Text
'Hier möchte ich einfach, dass der eingenbene Text aus der Textbox der Form3
'in die Textbox der Form2 'übergeben' werden soll.
'Es taucht auch keine Fehlermeldung auf, aber es wird
'eine neue Form mit dem 'übergebenen' Text erzeugt.
'Dies war aber nicht mein Plan. Es soll sich
'keine weitere Form öffnen, sondern, der Text
'soll einfach übergeben werden. Und das ist mein Problem.
oForm.Text1_form2.Text = T
Unload Me
End Sub Module1:dieses Modul dient einfach als ein Sprachmodul. Da ich mein Programm in mehreren Sprachen anbieten möchte, anstatt nur in Deutsch. ich habs nur einbezogen, damit du einen leichten 'Gesamtbüberblick' gewinnst.
'Die Texte werden ordnungsgemäß an die jeweiligen Formen übergeben.
'Hier ist also kein Fehler.
Public Function Form1_modul(oForm As Form1)
Dim Cmd_Form1$
Cmd_Form1$ = "Klick hier"
oForm.Cmd_Form1.Caption = Cmd_Form1$
End Function
Public Function Form2_modul(oForm As Form2)
Dim cmd_form2$
Dim Label1_form2$
Label1_form2$ = "Hier könnte ihr Text stehen"
oForm.Label1_form2.Caption = Label1_form2$
cmd_form2$ = "Überprüfen"
oForm.cmd_form2.Caption = cmd_form2$
End Function
Public Function Form3_modul(oForm As Form3)
Dim cmd_form3$
cmd_form3$ = "Klicke nochmal hier"
oForm.cmd_form3.Caption = cmd_form3$
End Function Ich weiß, dass diese Formverwaltungs-Methode innherlab einer MDIForm, die ich dir gerade vorgeführt habe, nicht die tollste ist. Wie ich schon sagte, es dient nur zur Veranschaulichung, damit du nachvollziehen kannst, was ich eigentlich möchte ;)
Fazit:
Dein Code, den du mir geliefert hast, war sehr aufschlussreich. Nur möchte ich nicht mit Kanonen auf Spatzen schiessen. Nicht dass ich deine Mühe und Freundlichkeit in Frage stellen möchte, nur möchte ich keine Formen in dem Sinne verwalten.
Was ich einfach nur möchte, ist, dass dem/der Anwender/in die Möglichkeit zur Verfügung steht mehrere Formen öffnen zu können, um eventuell Datensätze miteinander zu vergleichen. Wir kennen es ja auch, dass wir einen Kontaktdatensatz offen haben (sagen wir mal, ein Datensatz von Peter) und legen diesen beseite und öffnen schnell den Kontaltdatensatz von Heinz und bearbeiten Heinz's Datensatz. |