[Access2007] Zwei Exemplare des gleichen Formulars

Hallo zusammen,

ich habe ein Formular, das eine Auswahlliste darstellt. Die Tabelle, die der Liste zugrunde liegt, wird über die OpenArgs übergeben, d. h. ich öffne das Formular mit dem Befehl

DoCmd.OpenForm „Form1“, , , , , acDialog, „Tabelle1“

Nun bräuchte ich, während dieses Formular geöffnet ist, ein zweites Exemplar davon, basierend auf einer anderen Tabelle. Mit dem entsprechenden DoCmd.OpenForm-Befehl funktioniert das wohl nicht.

Ich habe herausgefunden, dass man ein Formular auch über

Set form1 = new Form_Form1
form1.Visible = True

erzeugen kann. Leider verschwindet dieses Formular aber sofort wieder, nachdem es kurz sichtbar war. Es müsste also eine Möglichkeit geben, Einstellungen analog zu dem Parameter „acDialog“ aus der DoCmd.OpenForm-Methode vorzunehmen. Weiß jemand wie das geht, oder gibt es eine andere Lösung?

Mit bestem Dank im Voraus

Matthias

Hallo,

Lösung für was?

wenn ein Form mit acDialog geöffnet wurde, behält es den Fokus solange , bis es geschlossen (oder unsichtbar gestellt) wird.

Insofern ist es müßig, ein anderes Form (und dazu noch das gleiche als weitere Instanz) öffnen zu wollen…

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Franz!

Lösung für was?

Bitte entschuldige, wenn die Fragestellung unklar war. Die Frage ist:

Wie kann ich bei der Methode, wenn ein Formular über

Set f = new Form
f.Visible = True

erzeugt wird, erreichen, dass es geöffnet bleibt, so wie ein Formular, das mit der DoCmd.OpenForm-Methode und dem Parameter acDialog geöffnet wurde?

wenn ein Form mit acDialog geöffnet wurde, behält es den Fokus
solange , bis es geschlossen (oder unsichtbar gestellt) wird.

Insofern ist es müßig, ein anderes Form (und dazu noch das
gleiche als weitere Instanz) öffnen zu wollen…

Wenn ein Formular den Fokus hat, kann es doch ein weiteres öffnen und diesem den Fokus weitergeben. Oder sehe ich das falsch?

Viele Grüße
Matthias

Hallo,

um die Frage zu beantworten:

Deklariere die Objektvariable im Formularmodulkopf als Public:

Public frm as Form

und erzeuge die neue Instanz in einer Ereignisprozedur mit:

Sub btnNewInst_Click()
Set frm = New Form_Meinformular
frm.visible =true
Docmd.Movesize 1000,1000 'wegschieben
End Sub

Das zweite Form bleibt solange geöffnet, wie das erste angezeigt wird.

Wenn die Deklaration der Objektvariablen in einem allgemeinen Modul steht, bleibt das Form auch nach dem Schliessen des ersten geöffnet.

Viele Grüße vom Bodensee
Franz, DF6GL