Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: FlyingFlo am Mai 16, 2016, 22:46:34

Titel: Gleicher Datensatz nach Schließen eines Formulars und Requery
Beitrag von: FlyingFlo am Mai 16, 2016, 22:46:34
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?
Titel: Re: Gleicher Datensatz nach Schließen eines Formulars und Requery
Beitrag von: FlyingFlo am Mai 16, 2016, 23:16:35
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!
Titel: Re: Gleicher Datensatz nach Schließen eines Formulars und Requery
Beitrag von: DF6GL am Mai 16, 2016, 23:26:31
Hallo,

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


Titel: Re: Gleicher Datensatz nach Schließen eines Formulars und Requery
Beitrag von: ebs17 am Mai 17, 2016, 08:40:23
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.
Titel: Re: Gleicher Datensatz nach Schließen eines Formulars und Requery
Beitrag von: FlyingFlo am Mai 17, 2016, 17:06:59
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.
Titel: Re: Gleicher Datensatz nach Schließen eines Formulars und Requery
Beitrag von: Beaker s.a. am Mai 17, 2016, 21:30:26
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
Titel: Re: Gleicher Datensatz nach Schließen eines Formulars und Requery
Beitrag von: ebs17 am Mai 17, 2016, 22:19:57
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.