Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Gleicher Datensatz nach Schließen eines Formulars und Requery

Begonnen von FlyingFlo, Mai 16, 2016, 22:46:34

⏪ vorheriges - nächstes ⏩

FlyingFlo

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?

FlyingFlo

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!

DF6GL

Hallo,

wenn ein neuer DS mit dem Popup-Form angelegt wird, erscheint der mit Refresh nicht...



ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

FlyingFlo

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.

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ebs17

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.

Mit freundlichem Glück Auf!

Eberhard