Office: GetScrollInfo

Helfe beim Thema GetScrollInfo in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich versuche grade eine Funktion zu erstellen, welche per MausMove in einem Enlosformular an eine Info aus dem jeweiligen Datensatz unter dem... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von markusxy, 17. November 2019.

  1. GetScrollInfo


    Ich versuche grade eine Funktion zu erstellen, welche per MausMove in einem Enlosformular an eine Info aus dem jeweiligen Datensatz unter dem Mauszeiger zu gelangen.

    Bis hierher ist das kein Problem.
    Der User kann aber die Scrollbar per Klick auf den Pfeil so weit nach unten verschieben, das Pos + Pos zusammen über dem Max Wert (aus der ScrollInfo) liegen.
    Dann liegt die Position im "Nirvana" und der Wert Pos stimmt nicht mehr.

    Die Frage ist nun, wie das gelöst werden könnte.

    Der Einfache Weg wäre so die Scrollbar in so einer Situation auf die letzte Position zu verschieben. Ist aber weniger schön.
    Vielleicht gibts aber einen Trick, auf einem anderen Weg an die korrekte Position zu kommen.

    LG Markus

    :)
     
    markusxy, 17. November 2019
    #1
  2. Hallo
    das die SB so überzogen werden kann ist mir noch nicht aufgefallen weil noch nie so getestet. Aber man lernt nie aus. Wenn du nPos statt nTrackpos verwendest so stimmt es evtl wieder. Ein schneller Test zeigte dies zumindest.
     
  3. Hallo Daolix,
    bei mir liefern Pos und Trackpos den selben Wert.
    Wie hast du Mask eingestellt? Bei mir (SIF_RANGE Or SIF_PAGE Or SIF_POS Or SIF_TRACKPOS)

    Edit:
    Ich meinte: Pos + Page > Max
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 18. November 2019
    #3
  4. GetScrollInfo

    Hallo
    Bei mir ist die ebenfalls auf sif_all. Im Normalfall sind die bei mir auch gleich, nur wenn ich die SB nach deiner Methode überziehe sind sie unterschiedlich.

    Dein "Edit" hab ich jetzt nicht geraft. Evtl dann ntrackpos + npage -1 =< nmax
     
  5. Nach ganz kurzem Blick auf die Doku: Pos ist die Position und Page die Page-Size. - Warum sollten beide addiert nicht größer sein als Max?

    BTW: Access verhält sich gelegentlich eigenartig mit der Positionierung der Scroll-Handles. Die Scrollsize ist manchmal einen Datensatz zu klein. Das lässt sich durch Anpassen der UFO-Größe beheben. - Genaue Details habe ich gerade nicht mehr im Kopf.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  6. Hi!

    Funktioniert im Endlosformular auch ein SetScrollInfo?

    Also mit GetScrollInfo die aktuellen Werte holen,
    dann ein me.requery ausführen,
    dann mit SetScrollInfo wieder die ursprüngliche Position einstellen?
     
    CatboyJones, 19. November 2019
    #6
  7. Wenn pos + page - 1 =(Max)/ Recordset.RecordCount(abhängig von DataAdd) dann besteht das Risiko falscher Werte.

    Dieser Wert bleibt unverändert sobald man sich auf der letzten Position befindet und dann mittels Maus (Klick auf ScrollLeiste) noch weiter nach unten navigiert.

    Nach dem Verschieben in diesen Bereich kann es außerdem zu Abweichungen beim Lesen der ScrollInfo kommen.

    Scheint also nicht so leicht lösbar zu sein.
     
    markusxy, 19. November 2019
    #7
  8. GetScrollInfo

    Hallo
    So ganz genau hab ich jetzt nicht verstanden was du jetzt meinst. Das was ich jetzt als seltsames verhalten von Acc empfinde ist das wenn ich vom letzen Datensatz auf die "Neu"-Zeile komme, da reagiert das Mousemove von oben kommend nicht, dieser bereich seint irgentwie getriggert zu sein, denn von unten kommend funzt es, wenn auch nicht immer. Aber ansonsten hab ich jetzt keine ungenauigkeiten bei Scrollinfo feststellen, kann aber auch daran liegen das mein zu simpel ist.
     
  9. Hallo!

    Mögliche Problemumgehung:
    Falls du den aktiven Datensatz verändern darfst, könntest du dafür sorgen, dass dieses "Übersteuern" aufgehoben wird.

    irgendwie so:
    Code:
    mfg
    Josef
     
    Josef P., 19. November 2019
    #9
  10. Jetzt kapier ich
    2007 zeigt unterschiedliche Werte am Ende bei nTrackpos und nPOs, daher auch kein Problem den richtigen Wert zu erhalten.
    2016 zeigt hier bei beiden Props den gleichen Wert, daher ist ziemlich schwierig den richtigen DS unter der Mouspos ermitteln zu können.
     
  11. Na, dann back to the roots. *biggrin.gif*
    Ich habe das auch mal mit 2007 gemacht, und kann mich an keine Probleme erinnern.
    Mit 2013 schaut es nicht mehr so gut aus.
    Es fallen auch die Abweichungen bei den Klassennamen der Scrollbars auf.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  12. Ist nicht gewünscht.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  13. GetScrollInfo

    \@Josef
    Dann lass ich mich mal von Deinem Gedanken inspirieren.

    @CatboyJones *biggrin.gif*
    So scheint das zu gehen, was du wolltest:

    Code:
     
    CatboyJones, 19. November 2019
    #13
  14. \@CatboyJones,
    danke fürs Mitdenken, aber leider hilft das gar nicht.

    Nochmal das Problem:
    GetScrollInfo liefert unter bestimmten Umständen ein falsches Ergebnis.
    Es geht darum zu wissen welcher Datensatz der erste im Formular ist.
    GetScrollInfo liefert den richtigen Wert - nur nicht unter den Umständen wie zuvor beschrieben.
     
  15. > danke fürs Mitdenken, aber leider hilft das gar nicht.
    Doch, es ist eine sinnvolle Verwertung Deines Threads im Sinne der Nachhaltigkeit. *biggrin.gif*

    GetScrollInfo zeigt dir doch nur die Position des Box-Icons im Scrollbar,
    da diese Box niemals außerhalb des Scrollbars liegen wird, kannst du
    aus der ScrollInfo keine Information bekommen, die dein Problem
    löst.
     
    CatboyJones, 19. November 2019
    #15
Thema:

GetScrollInfo

  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