Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: trebuh am Februar 03, 2025, 08:28:24

Titel: Frage zu Bildlaufleiste im Unterformular
Beitrag von: trebuh am Februar 03, 2025, 08:28:24
Hallo Access-Gemeinde

Problem:
In einem Unterformular (Endlosformular) erscheint je nach Datensätzen die vertikale Bildlaufleiste.
Und je nach Datensätzenanzahl ist der Verschiebeweg des Balken gering.

Wenn ich jetzt in dem Unterformular mit dem Mausrad nach unten scrolle, wird mir beim hoch scrollen
der erste Datensatz nicht angezeigt.
Ich muss mit der Maus (in der Bildlaufleiste) auf den "Pfeil nach oben" klicken.

Im Netz habe ich da eine ähnliche Fragestellung zu diesem Problem gefunden.
Aber eine Lösung ist nicht vorhanden.

Weiß da jemand einen Tipp?

Gruß
Hubert
Titel: Re: Frage zu Bildlaufleiste im Unterformular
Beitrag von: Bitsqueezer am Februar 03, 2025, 08:53:24
Hallo,

beim Hochscrollen weiß ich nicht, was das Problem ist, aber das "je nach Datensatzanzahl"-Problem liegt am Lazy Loading von Access.

Das kannst Du abstellen, indem Du "MoveLast", "MoveFirst" für das Formularrecordset ausführst (z.B. in Form_Load). Dadurch werden die Datensätze sofort alle geladen. Dauert geringfügig länger beim Öffnen des Formulares, dafür geht der Scrollbalken sofort. Das gleiche geht bei Kombo-/Listboxen, indem man deren ListCount abruft.

Gruß

Christian
Titel: Re: Frage zu Bildlaufleiste im Unterformular
Beitrag von: Josef P. am Februar 03, 2025, 09:00:15
Hallo!

So etwas hatte ich glaube ich schon einmal. Tritt das Problem nur auf, wenn so wenig Datensätze enthalten sind, dass die Bildlaufleiste nicht benötigt wird?
Die Lösung war für mich, die Bildlaufleiste je nach sichtbarer Datensatzanzahl zu aktivieren bzw. zu deaktivieren.

> Im Netz habe ich da eine ähnliche Fragestellung zu diesem Problem gefunden.
Fundstelle ist geheim? ;)

Gruß
Josef
Titel: Re: Frage zu Bildlaufleiste im Unterformular
Beitrag von: trebuh am Februar 03, 2025, 10:04:15
Hallo Christian und Josef,

danke für die Tipps.

Nein, die Fundstelle ist nicht geheim.   ;D
Nur ist das Problem meist, dass man den Link nicht gleich kopiert, weitersucht und dann den Link nicht mehr findet.
Habe jetzt nochmal nach dem Link gesucht. Direkt gefunden habe ich ihn nicht. Aber was gleichwertiges gefunden. Da ist aber jetzt ein Vorschlag drin. Entweder ist dies der passende Link und ich habe den Tipp nicht gesehen, oder es ist wirklich ein anderer Thread

https://microsoft.public.de.access.narkive.com/YyUlzkjv/datensatz-verschwindet-beim-scrollen (https://microsoft.public.de.access.narkive.com/YyUlzkjv/datensatz-verschwindet-beim-scrollen)

Problem tritt auf, wenn es gerade so viel Datensätze sind, dass eine (fast) volle vertikale Bildlaufleiste entsteht.

Da es meist nur wenige Datensätze sind, habe ich es gerade mal mit "Aktueller Datensatz" statt "alle Datensätze" im Zyklus des Formulars vorerst gelöst.
Das mit dem Mausrad-Code muss ich mal testen.

Gruß und nochmals Danke für die Tipps

Hubert
Titel: Re: Frage zu Bildlaufleiste im Unterformular
Beitrag von: trebuh am Februar 04, 2025, 23:33:10
Hallole,

wollte noch kurz Rückmeldung geben.
(Der ein oder andere hat dieses Phänomen vielleicht auch)

den Code in dem Link
If Me.RecordsetClone.Recordcount < 4  < 0 Then
DoCmd.GoToRecord acActiveDataObject, , acFirst
End if

Habe ich für meine Zwecke im Unterformular (Im Erreignis "Bei Mausrad") wie folgt abgeändert:
If Me.RecordsetClone.Recordcount < 5 Then   
DoCmd.GoToRecord acActiveDataObject, , acFirst      'Anstelle dieser Codezeile funktioniert auch ein Me.Requery
End if

Gruß
Hubert
Titel: Re: Frage zu Bildlaufleiste im Unterformular
Beitrag von: Knobbi38 am Februar 05, 2025, 12:51:07
Hallo Hubert,

dafür brauchst du das RecordsetClone-Objekt nicht extra bemühen und der Paradigmenwechsel zu Makros mit Docmd muß auch nicht sein:
if me.recordset.recordcount < 5 then me.recordset.movefirst
reicht vollkommen.

Gruß
Knobbi38