[VisualBasic] Mehrere Instanzen eines Formulars öffnen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von BrotoX, 20. November 2007 .

  1. 20. November 2007
    Mehrere Instanzen eines Formulars öffnen

    Hallo alle Zusammen,

    ich habe da ein tierisches Problem und komm einfach nicht weiter :angry: Ich hoffe ihr könnt mir helfen. Unzwar habe unter Access ein Formular1 und möchte hierraus ein Formular2 öffnen per Befehlsschaltfläche.
    Und immer wieder wenn ich auf den Befehlsknopf drücke möchte ich das sich Formular2 öffnet, also mehrere Instanzen. Das Problem ist nur wenn ich mehrere Formulare ausgefüllt habe und speicher die nacheinander ab, dann wird das andere Formuar gelöscht. Also unterscheiden sich die Instanzen nicht von einander.
    Weiß vielleicht jemand wie ich das Problem lösen kann?
    ich wäre euch sehr dankbar!!

    Mfg
    BrotoX
     
  2. 20. November 2007
    AW: Mehrere Instanzen eines Formulars öffnen

    Poste doch plz ein bisschen sourcecode - sonst kann niemand nachvollziehen, woran es liegt.

    Ich vermute mal, du machst jedes Mal ein Formular2.Show(). Das kann nicht funktionieren, da so immer nur die "globale" Instanz von Formular2 anzegeigt wird. Versuche eher... (in Formular1 drin):

    Code:
    Dim WithEvents MyFormular2 as Formular2
    
    Private Sub Button_Click(...)
     If MyFormular2 Is Nothing Then
     MyFormular2 = New Formular2()
     End If
     MyFormular2.Show()
    End Sub
    Greetz Roog
     
  3. 21. November 2007
    AW: Mehrere Instanzen eines Formulars öffnen

    Mmmh werde ich gleich mal ausprobieren...

    ich habe hier zwei varianten, aber irgendwie haut das noch nicht so hin. vielleicht hilft dir das weiter und du siehst mein (denk-)fehler.

    Code:
    Option Compare Database
    Option Explicit
    'Dim x As Form_VMR
    Dim A() As Form, I As Long
    
    Private Sub Befehl0_Click()
    
    'Set x = New Form_VMR
    'x.Visible = True
    'x.SetFocus
    
    I = I + 1
    ReDim Preserve A(I)
    Set A(I) = New Form_VMR
    With A(I)
    .Visible = True
    End With
    
    End Sub
     
  4. 21. November 2007
    AW: Mehrere Instanzen eines Formulars öffnen

    Also spontan vermisse ich nur den Aufruf der [Form].Show()-Funktion - ich weiss aber nicht, ob dieser essentiell ist, oder nur ein alias für .Visible = True - ansonsten scheint alles OK.

    Einige Verständnisfragen:
    a) Der gepostete Quellcode - ist der in 'ner Form? (Nehme ich mal an)
    b) Also du hast EINE Form und möchtest von dieser EINEN Form MEHRERE Child-Formulare haben?
    c) (allgemeine Verständnisfrage) Werden numerische Werte in VB (Long, Integer, ...)
    immer mit 0 initialisiert?

    Ich wüsste keinen Grund, ausser evtl. dem fehlenden .Show(), warum es nicht funktionieren sollte. :/

    Notfalls, wenn's dich nicht stört, einfach mal die Projektdateien posten. Vielleicht ergiebt sich ja was aus dem Zusammenhang...

    So long
    Roog
     
  5. 21. November 2007
    AW: Mehrere Instanzen eines Formulars öffnen

    Ja der Code ist in einer Form. Es funktioniert ja auch soweit.
    Ich möchte ja aus einem Formular1 aus per Bottum ein Formular2 öffnen und wenn ich auf dem Bottum immer wieder klicke soll er mir ein neues Formular2 öffnen, also eine neue Instanz wobei die erste auch noch da ist.

    wenn ich mehrere Formulare2 offen habe und ich in alles was ausfülle, die aber noch nicht abspeichere, sondern erst wenn bei allen geöffneten Formulare2 was drin steht, speichere ich denn ein Formular2 nach dem anderen. Dann beim ersten Speichern löscht er mir die anderen Formulare2 weil er wohl zum nächsten neuen Datensatz springt. Also unterscheiden die sich ja nicht von einander oder??

    hoffe du verstehst was ich meine? ;-) ich verzweifel langsam...

    der aufruf mit show geht nicht aber es scheint ja gleich zu sein mit visible.
     
  6. 25. November 2007
    AW: Mehrere Instanzen eines Formulars öffnen

    NEIN! show ist nicht gleich visible!!

    visible:
    jedes mal wenn du auf den button klickst wird das selbe form geöffnet, aber das andere nicht geschlossen. jetzt überschreibt der jedes mal das andere, erste formular.

    show:
    macht jedes mal ein neues aber speichert immer noch gleich

    lösung1:versuch mal so (nicht in eine Instanz reinschreiben!!):
    public sowieso as new form2

    dann gucks du dir mal die ganzen namespace an und dann teste einfach mal

    lösung2: speicher die forms in einer datei ab
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.