Office: Letzten DS beim nächsten Start wieder anzeigen funktioniert nicht.

Helfe beim Thema Letzten DS beim nächsten Start wieder anzeigen funktioniert nicht. in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Ich möchte beim Schliessen einer Access-Anwendung den aktuellen DS den ich in dem Moment im Formular habe, speichern und beim erneuten Start der... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Rosenauer, 16. September 2024.

  1. Letzten DS beim nächsten Start wieder anzeigen funktioniert nicht.


    Hallo
    Ich möchte beim Schliessen einer Access-Anwendung den aktuellen DS den ich in dem Moment im Formular habe, speichern und beim erneuten Start der Anwendung wieder im Formular einstellen.
    Dazu habe ich eine Tabelle erstellt, die die Parameter speichert.
    Dann habe ich im Load-Ereignis und im Close-Ereignis vom Formular entsprechenden Code eingebaut.

    ParamLoad und ParamUpdate sind eigene Funktionen für das Speichern bzw. Lesen in die Tabelle und funktionieren auch. Das ist nicht das Problem

    Im Load-Ereignis habe ich diesen Code drin, der auch funktioniert.
    (Über die Variable X um besser testen zu können)
    Es wird der «FL_ICAO_Code» gespeichert bzw. wieder geladen.

    Code:
    Private Sub Form_Load()
        Dim X
        X = ParamLoad("tblParamTMP", "LastView")
        Debug.Print X
        FL_ICAO_Code.SetFocus
        DoCmd.FindRecord X
    End Sub
    Im Close-Ereignis habe ich diesen Code drin.
    Code:
    Private Sub Form_Close()
        Dim Rc
        ‘Testausgabe
        Debug.Print "----------------------------"
        Debug.Print Me.FL_ICAO_Code
        Debug.Print Me.FL_Name
        Debug.Print Me.FL_ID
      
        'Die Werte vom letzten Satz speichern
        'Aufruf:
        '                Tabelle,       Satz,              Parameter welcher gespeichert werden soll
        Rc = ParamUpate("tblParamTMP", "LastView", Me.FL_ICAO_Code)
     
    End Sub
    Im Close-Ereignis speichert er mir nicht den aktuellen DS, sondern immer der erste DS mit welchem ich sortiert habe.
    Beispiel: Ich sortiere nach «ID»
    ID = 1
    FL_ICAO_Code = «NTGA» (vom ersten DS)
    Ich stelle im Formular FL_ICAO-Code = «LSZH» ein (hat ID = 9222)
    Ich schliesse das Formular und dabei sollte er «LSZH» in die Tabelle speichern und dies beim nächsten Start wieder anzeigen/einstellen.
    Er speichert mir aber immer «NTGA»
    Ist immer der erste DS mit dem Ich sortiert habe.

    Habe noch einen TestButton eingebaut.
    Debug.Print Me.FL_ICAO_Code
    Im TestButton zeigt er mir den aktuellen DS an, also «LSZH». Das ist richtig.

    Debug.Print Me.FL_ICAO_Code
    In Form_Close-Ereignis zeigt er mir immer den ersten DS an mit welchen ich sortiert habe, also «NTGA». Also nicht den aktuelle DS im Formular. Komplett unlogisch.

    Ich hoffe, ich habe mich verständlich ausgedrückt.
    Was habe ich falsch gemacht?
    Wie muss ich es richtig machen?

    Vielen Dank für Eure Hilfe.
    Gruss Rosenauer
     
    Rosenauer, 16. September 2024
    #1
  2. andyfau
    andyfau Erfahrener User
    Hallo,
    das Verhalten ist normal, weil beim Close das Recordset quasi in den Uhrzustand gesetzt wird.
    Auf welchem Datensatz aktuell der Focus liegt, kann aber im Current-Ereignis abgefragt werden und dann in einer Varablen bis zum Close konserviert werden. Gehe wie folgt vor:

    Dimensioniere am Anfang des Formularcodes, also unmittelbar vor der ersten Prozedur, eine übergreifende Variable, z.B.
    Code:
    Dim FL_ICAO_Code_Merker as String
    Im Current-Ereignis des Formulars weist Du dieser Variable den Codestring zu, der später beim Close gespeichert werden soll:
    Code:
    Private Sub Form_Current()
    .....
         FL_ICAO_Code_Merker = Me.FL_ICAO_Code
    .....
    End Sub
    Dann kannst Du die Variable im Close-Ereignis an deine Update-Funktion übergeben:

    Code:
    Private Sub Form_Close()
        Dim Rc
        .......
        'Die Werte vom letzten Satz speichern
        'Aufruf:
        '                Tabelle,       Satz,              Parameter welcher gespeichert werden soll
        Rc = ParamUpate("tblParamTMP", "LastView", FL_ICAO_Code_Merker)
     
    End Sub
     
    Zuletzt bearbeitet: 16. September 2024
  3. Grüezi Andreas (Andifau)

    Nach meiner Logik sollte ein Feld aus einem Formular auslesen immer gleich funktionieren.
    Aber dass beim Close-Ereignis das Recordset quasi in den Uhrzustand gesetzt wird und dadurch den "falschen" DS liefert, liess mich verzweifeln.
    Ich habe den Vorschlag eingebaut und funktioniert einwandfrei.
    Andreas, vielen Dank für Deine Hilfe.
    Gruss Rosenauer
     
    Rosenauer, 17. September 2024
    #3
    1 Person gefällt das.
Thema:

Letzten DS beim nächsten Start wieder anzeigen funktioniert nicht.

Die Seite wird geladen...
  1. Letzten DS beim nächsten Start wieder anzeigen funktioniert nicht. - Similar Threads - nächsten Start anzeigen

  2. Werte zusammenzählen - ab einer Zelle die nächsten 5

    in Microsoft Excel Hilfe
    Werte zusammenzählen - ab einer Zelle die nächsten 5: Hallo. ich würde gerne eine bestimmte Menge an Zellen zusammenzählen. Genau gesagt: Wenn in einer Zelle (A1) die Zahl 5 steht dann soll Excel ab B2 die nächsten 5 Werte zusammenzählen. Wenn...
  3. Auf die nächst mögliche Zelle mit Inhalt zugreifen

    in Microsoft Excel Hilfe
    Auf die nächst mögliche Zelle mit Inhalt zugreifen: Einen schönen Sonntag wünsche ich. Ich möchte mit folgendem Code auf die nächst mögliche Zelle mit einem Wert zurück greifen. Der Code nimmt aber immer den vorherigen Wert in der Zelle. Wenn die...
  4. Combobox soll zur nächsten Txtbox wechseln zum befüllen

    in Microsoft Excel Hilfe
    Combobox soll zur nächsten Txtbox wechseln zum befüllen: Hallo Allesamt Nach einem Event soll gesichtet werden, ob alles in Ordnung ist. Ist der ein oder andere Artikel beschädigt, kann in der UF gewählt werden. 1. Eventnummer suchen per Combobox oben...
  5. Suche nächsten Wert in Spalte und rechne mit ihm

    in Microsoft Excel Hilfe
    Suche nächsten Wert in Spalte und rechne mit ihm: Hallo zusammen, ich möchte aus einer Tabelle eine prozenduale Verteilung erreichen. Meine Liste ist seeeehr lang und kann dynamisch sein, daher möchte ich nicht immer jede Zelle anpassen müssen....
  6. Wert in Zelle kopieren und in nächster freie Zelle einfügen

    in Microsoft Excel Hilfe
    Wert in Zelle kopieren und in nächster freie Zelle einfügen: Hallo zusammen, ich habe jetzt schon etwas länger recherchiert, habe aber vermutlich nen dickes Brett vorm Kopf ;-) Mein Problem möchte ich gerne im VBA als Makro erledigen. In der Zelle F4 ist...
  7. Bedingte Formatierung in Nächste Zelle Kopieren

    in Microsoft Excel Hilfe
    Bedingte Formatierung in Nächste Zelle Kopieren: Hallo, undzwar möchte ich in meinem Messprotokoll Die Zelle 11 in Zelle 12 Kopieren. Dabei verschiebt sich aber die Formatierung nicht mit. Die Regel bezieht sich dann immer noch auf Zelle 11...
  8. die am nächst liegende Zahl suchen

    in Microsoft Excel Hilfe
    die am nächst liegende Zahl suchen: Hallo und HILFE ich hänge gerade in einer Formelkrise :( Problem für mich in der Spalte A3:A23 ( wert1-23 ) in Spalte B3:B23 Variable Werte ( mit summe wenn Bekomme ich nun natürlich meinen...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden