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. 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....
  3. 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...
  4. 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...
  5. 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...
  6. VBA - Springen in nächste ungeschützte Zelle ohne TAB/Enter

    in Microsoft Excel Hilfe
    VBA - Springen in nächste ungeschützte Zelle ohne TAB/Enter: Hallo. Ich habe folgendes vor: Auf meinem mit Blattschutz geschütztem Arbeitsblatt habe ich geschützte und ungeschützte Zellen in unterschiedlicher Anordnung. Befüllt werden die ungeschützten...
  7. Wenn Zelle leer, dann nimm nächst verfügbare oberhalb

    in Microsoft Excel Hilfe
    Wenn Zelle leer, dann nimm nächst verfügbare oberhalb: Guten Tag, Ich habe eine Funktion, die ein Wert aus Spalte A in eine Zelle von Spalte B nimmt. Da in Spalte A nicht jede Zelle ein Wert hat, sondern auch leere enthalten sind, möchte ich mit der...
  8. Bedingte Formatierung Datum innerhalb der nächsten 2 Monate

    in Microsoft Excel Hilfe
    Bedingte Formatierung Datum innerhalb der nächsten 2 Monate: Hallo Zusammen, ich habe mir schon diverse Beiträge in diversen Foren angesehen und komme einfach nicht auf eine Lösung. Offensichtlich mache ich in der Formatierung etwas falsch. Es geht um...
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