Hallo,
ich habe ein Formular frmPLMenueDirekt, aus dem heraus ich ein weiteres (PopUp-)Formular per Button öffne. Beim Schließen dieses Formulars per Button soll frmPLMenueDirekt aktualisiert werden und der vorher angezeigte Datensatz wieder gezeigt werden. Dafür nutze ich folgenden Code, den ich im Netz gefunden habe:
Dim lngStore As Long
lngStore = Me!IDProjekt
Forms!frmPLMenueDirekt.Painting = False 'Bildschirmflackern reduzieren
DoCmd.Close
Forms!frmPLMenueDirekt.Requery 'Aktualisierung
Forms!frmPLMenueDirekt.Recordset.FindFirst "IDProjekt = " & lngStore 'Zum entsprechenden Datensatz springen
Forms!frmPLMenueDirekt.Painting = True
Die Requery-Zeile wird noch korrekt abgearbeitet, aber dann wird nicht zu dem Datensatz gesprungen, sondern es wird immer der erste Datensatz angezeigt.
Außerdem bekomme ich dann noch ein seltsames Verhalten: Wenn ich dann einen anderen Datensatz auswähle und auf eine beliebige Stelle im Formular klicke, springt er wieder zum ersten Datensatz. Das kann ich mir überhaupt nicht erklären.
Habt ihr eine Idee für eine Lösung?
Danke und viele Grüße, Florian
P.S. Gibt es ein Ereignis, das grundsätzlich ausgelöst wird, sobald ein Formular wieder aktiviert wird, wenn ich das darüberliegende modale Pop-Up-Formular schließe?
Habe das Problem soeben umgangen.
Ich nutze einfach die Refresh-Methode, also:
DoCmd.Close
Forms!frmPLMenueDirekt.Refresh 'Aktualisierung
Da gibt es die ganzen Probleme mit Datensatzänderung nicht, wobei ich den Unterschied zwischen Refresh und Requery nicht wirklich verstehe, aber für meine Zwecke scheint Refresh auszureichen.
Schön wäre noch eine Antwort auf die obige P.S.-Frage! Danke!
Hallo,
wenn ein neuer DS mit dem Popup-Form angelegt wird, erscheint der mit Refresh nicht...
Zitataber dann wird nicht zu dem Datensatz gesprungen, sondern es wird immer der erste Datensatz angezeigt
Das wäre ein Zeichen dafür, dass der gesuchte Datensatz nicht gefunden wurde.
ZitatGibt es ein Ereignis, das grundsätzlich ausgelöst wird, sobald ein Formular wieder aktiviert wird, wenn ich das darüberliegende modale Pop-Up-Formular schließe?
Ich würde sagen, beim Schließen des PopUp-Formulars gibt es eine Ereigniskette, die man nutzen könnte.
Zitat
Ich würde sagen, beim Schließen des PopUp-Formulars gibt es eine Ereigniskette, die man nutzen könnte.
Da ich mehrere PopUp-Formulare habe, würde ich lieber ein Ereignis in dem darunterliegenden Formular nutzen, da ich sonst in jedem PopUp die entsprechenden VBA-Befehle benötige.
Hallo Flo,
ZitatDa ich mehrere PopUp-Formulare habe, würde ich lieber ein Ereignis in dem darunterliegenden Formular nutzen, da ich sonst in jedem PopUp die entsprechenden VBA-Befehle benötige.
Was hindert dich daran die Popups
modal zu öffnen, und den
Code in der gleichen Prozedur abzuhandeln in dem das/die Popups
geöffnet werden. Im Prinzip:
ID merken
Popup öffnen
Requery und Bookmark
hth
gruss ekkehard
ZitatGibt es ein Ereignis, das grundsätzlich ausgelöst wird, sobald ein Formular wieder aktiviert wird, wenn ich das darüberliegende modale Pop-Up-Formular schließe?
Nein.
Gäbe es ein Aktivierenereignis, bliebe trotzdem unklar, ob gerade ein PopUp-Formular geschlossen wurde oder ob man z.B. von Excel wiederkehrt. Es bleibt also eine unklare Situation.
Ein Formularschließen ist eine eindeutige Aktion.
Zitatda ich sonst in jedem PopUp die entsprechenden VBA-Befehle benötige
Besserer Stil wäre, die paar Zeilen in eine öffentlichen Prozedur zu verlegen sowie die Prozedur mit den benötigten Parametern für eine Variabilität zu versehen.
Dann bräuchte man in den schließenden PopUp-Formularen nur den parametrisierten Aufruf der Prozedur.