Hey Leute. Ich möchte gerne zwei Formulare verstecken und erst nach betätiung des Button1 soll sich das Formular1 öffnen. Bei Betätigung von Button2 soll sich das erste Formular schließen und das Formular2 ´öffnen. Ich hab es schon mit einem PopUp probiert, aber das ist nicht so, wie ich es haben will. Es ist nämlich nicht im Vordergrund.
Ich freue mich auf eure Nachrichten
Hallo Julian,
wäre es nicht möglich, dass du beim Druck auf den Button die Formulare einfach entsprechend aufrufst? Ist es also unbedingt nötig die Formulare zu verstecken?
Also in etwa so:
Klick Button1 -> Formular1 aufrufen -> Button2 -> Formular2 aufrufen (sobald dieses dann aufgerufen ist, kann ja Formular1 geschlossen werden)
Greets
Sulu
Ja, dies wäre auch möglich, nur ist das Hauptformular gesperrt, dass heßt, wenn ich über das Makro das Formular1 öffne, dass ist dieses im Hintergrund und kann nicht angeklickt werden.
Hallo,
ist gar nicht so schwer so was zu realisieren.
Ich habe dir ein kleines Beispiel erstellt und angehängt.
Schau dir mal die VBA-Prozeduren hinter den Buttons an.
Die Reihenfolge der Aufrufe kannst du nun selbst nach belieben durch kleine Änderungen am Code gestalten und natürlich auch erweitern.
Beginne mit Aufruf von frmHaupt ...
HTH
Peter
[Anhang gelöscht durch Administrator]
Hey Database... Danke für die Antwort, aber ich kann die Datei nicht öffnen... Ich müsste ein Update ausführen und das ist nicht möglich zurzeit in unserem Unternehmen.. Kannst du eventuell mir die Datei nochmal schicken in einem anderem Format ?? Vielen Dank
Julian Zenses
Verstehe nicht ganz - welches Problem da zu einem Update führt?
Welche Windows-Version und welche Office Version setzt du ein?
Wenn du meine *.zip Datei runtergeladen hast ... rechtsklick ... hier entpacken ... sollte doch kein Problem erzeugen.
Ich kann das Vieh nur gezippt hier rauf laden, sonst überschreite ich mit 248 KB die max. Größe.
So aber lass uns das halt anders lösen:
Erstelle eine neue Datenbank und darin 3 Formulare.
Die Formulare definierst du als PopUp.
Bennenne Sie frm1, frm2 und frmHaupt.
Erstelle auf frm1 ein Bezeichnungsfeld und schreibe rein : "Ich bin Formular 1", das gleiche auf frm2 hier natürlich "Ich bin Formular 2"
Erstelle auf frm1 und frm2 je einen Button und benenne diese cmdClose und die Beschriftung "Schließen"
Kopiere in frm1 folgenden Code - ohne etwas daran zu ändern:
Private Sub cmdClose_Click()
If SysCmd(acSysCmdGetObjectState, acForm, "frm2") = 1 Then
'wenn das frm2 geöffnet aber versteckt ist wird es angezeigt
Forms!frm2.Visible = True
End If
DoCmd.Close acForm, "frm1"
End Sub
in frm2 kopiere diesen Code:
Private Sub cmdClose_Click()
If SysCmd(acSysCmdGetObjectState, acForm, "frm1") = 1 Then
'wenn das frm1 geöffnet aber versteckt ist wird es angezeigt
Forms!frm1.Visible = True
End If
DoCmd.Close acForm, "frm2"
End Sub
Dann erstellst du auf frmHaupt 3 Buttons untereinander
benenne diese cmdOpenF1 mit Beschriftung "Formular 1 öffnen", cmdOpenF2 mit der Beschriftung "Formular 2 öffnen"
und den dritten cmdQuit mit der Beschriftung "Beenden"
Dann kopierst du den folgenden Code hinter das Formular:
Private Sub cmdOpenF1_Click()
If SysCmd(acSysCmdGetObjectState, acForm, "frm1") = 1 Then 'Wenn das frm1 geöffnet ist
MsgBox "Formular 1 ist bereits geöffnet!"
Else 'das frm1 ist nicht geöffnet, daher wird es aufgerufen
DoCmd.OpenForm "frm1"
If SysCmd(acSysCmdGetObjectState, acForm, "frm2") = 1 Then 'wenn das frm2 geöffnet ist
'wird es versteckt
Forms!frm2.Visible = False
End If
End If
End Sub
Private Sub cmdOpenF2_Click()
If SysCmd(acSysCmdGetObjectState, acForm, "frm2") = 1 Then 'wenn das frm2 geöffnet ist
MsgBox "Formular 2 ist bereits geöffnet!"
Else 'das frm2 ist nicht geöffnet, daher wird es aufgerufen
DoCmd.OpenForm "frm2"
If SysCmd(acSysCmdGetObjectState, acForm, "frm1") = 1 Then
'wird es versteckt
Forms!frm1.Visible = False
End If
End If
End Sub
Private Sub cmdQuit_Click()
DoCmd.Quit
End Sub
Speichere die Datei, schließe alle Entwurfsansichten und öffne das frmHaupt.
wenn du alles nach meiner Vorgabe gemacht hast solltest du dann die Formulare per Buttonklick abwechslen anzeigen und verschwinden lassen können.
Es wird beim Beenden jedoch nicht daruf geachtet, ob noch ein Formular geöffnet war - das habe ich dann ausgelassen .. :)
Grüße
Peter