Aufruf von Formularen

keeepa

Mitglied
Hallo Leute,
ich habe folgendes Problem! Ich habe mir zwei Buttons gebastelt und für sich funktionieren die auch ganz gut!

DoCmd.OpenForm "form_TBLVERTRAG", , Filter, "VERTRAEGENR = '" & glob_vertraegenr & "'"

DoCmd.OpenForm "form_TBLVERTRAG", DataMode:=acFormAdd, WindowMode:=acWindowNormal


Das Problem ist nur, wenn ich einen der beiden Button ausgeführt habe, dann funktioniert der andere nicht mehr. Das hat natürlich damit zu tun, das das Formular "form_TBLVERTRAG" schon geöffnet ist. Meine Idee war jetzt das ich bevor ich den anderen Button drücke das formular schließe. Die folgenden beiden Methoden haben mich aber nicht weiter gebracht.

DoCmd.Close
DoCmd.Close acForm, "form_TBLVERTRAG"

Das Problem ist ja, das ich ein und das selbe Formular schließen und dann wieder öffnen möchte. Das Ziel ist halt, das ich mit dem einem Button ein leeres Formular öffne, wo ich einen neuen Datensatz hinzufügen kann und der andere Button soll ausschließlich einen per kombinationsfeld ausgewählten Datensatz anzeigen, der dann geändert werden kann. Und diese Buttons sollen jeder Zeit erreichbar sein.

Gruss
keeepa
 
Du kannst doch auch ein Hauptformular mit "Navigation" machen und dann eben darunter ein Subformular - so musst du diesen Krampf nicht durchexerzieren ;)
 
Hi d2wap,
vielen Dank für deine schnelle Antwort. Das mit den Unterformularen hatte ich alles schon mal probiert. Da bin ich auch nicht zum Ziel gekommen. Im moment bin ich viel näher an meinem gewünschten Ergebnis als vorher. Ich brauch nur noch eine Idee, wie ich das von mir zuvor geschildertet Problem löse!

Gruss
keeepa
 
Hallo Leute,
habe jetzt folgende Lösung für mein Problem gefunden ...

Ich habe einfach ein fake Formular entwickelt das ich aufrufe.
DoCmd.OpenForm "vertrag_oeffnen", DataMode:=acFormAdd, WindowMode:=acWindowNormal

Und in der Methode Form_Load des Fake formulars rufe ich folgenden Code auf!

Select Case modus
Case "vertragBearbeiten"

DoCmd.Close acForm, "form_startdialog"
DoCmd.Close acForm, "form_TBLVERTRAG"
DoCmd.OpenForm "form_TBLVERTRAG", , Filter, "VERTRAEGENR = '" & glob_vertraegenr & "'", WindowMode:=acWindowNormal

Case "neuAnlegen"
DoCmd.Close acForm, "form_startdialog"
DoCmd.Close acForm, "form_TBLVERTRAG"
DoCmd.OpenForm "form_TBLVERTRAG", DataMode:=acFormAdd, WindowMode:=acWindowNormal
Case Else
MsgBox "Die Variable Modus wurde nicht übergeben -->" & modus, 64, "Fehler"
End Select

Das ist meine Lösung und sie t!

Gruss
keeepa
 
Hallo, ich hätte wahrscheinlich den Status des Formulares abgefragt, wenn Formular offen, dann erst schliessen, neu öffnen.

Ab Access 2000 gibt dazu das Objekt "CurrentProject.IsLoaded"
 

Neue Beiträge

Zurück