Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Laden von Formular mit Dropdowns

Begonnen von Milvus, Mai 03, 2019, 12:52:34

⏪ vorheriges - nächstes ⏩

Milvus

Hallo in die Runde,

habe folgende Situation:

Formular läd recht schnell. Das Formular hat mehrere Dropdowns, die z.T. einige Sekunden brauchen, wenn man denn drauf klickt. Das nervt!!!

Optminierung der einzelnen combos mal außen vor, gibt es eine Möglichkeit unter Access das Formular so zu laden, dass die combos bereits vollständig geladen sind (also nicht erst beim drauf klicken)?

Ich würde an der Stelle gerne dem Nutzer eine Warteanzeige beim Öffnen geben, der Rest läuft dann flüssig.

Thanks

ebs17

Im Standardfall sollten die Datenherkünfte der Steuerelemente sofort mit Formularöffnen geladen werden, nicht erst nach einem Klick.
Mit freundlichem Glück Auf!

Eberhard

diri

Ich wärme diesen alten Thread mal auf ...

Das Problem mit Nachladen erst bei Klick tritt auf, wenn mehrere Kombos mit grösseren Datenmengen vorhanden sind.

Beschleunigung erfolgt durch Zählung der Einträge im Form Load Event (nicht im Open Event, das ist zu früh):
loadcnt = cbo1.ListCount
loadcnt = cbo2.ListCount
...

hth, diri

PhilS

Zitat von: diri am August 22, 2019, 09:56:23
Das Problem mit Nachladen erst bei Klick tritt auf, wenn mehrere Kombos mit grösseren Datenmengen vorhanden sind.

Beschleunigung erfolgt durch Zählung der Einträge im Form Load Event (nicht im Open Event, das ist zu früh):
Eine echte Beschleunigung ist das nicht. Die Wartezeit wird nur vom Ausklappen der Listen zum Laden/Öffnen des Forms verschoben.
Ich halte die Idee insgesamt für fragwürdig. Warum die Wartezeit immer erzwingen, auch wenn später ComboBoxen evtl. nie ausgeklappt werden? - Was letztendlich sinnvoll ist, kommt natürlich auf die gesamten Anforderungen an, die hier nicht genannt wurden.
Ich würde als erstes Versuchen, die Abfragen der ComboBoxen zu beschleunigen.

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Bitsqueezer

Hallo,

tatsächlich ist es eine Beschleunigung, nicht nur ein Verschieben. Die Beschleunigung besteht darin, daß Access gezwungen wird, bei Verwendung von ListCount sofort alle Datensätze herunterzuladen, wohingegen beim Aufklappen die LazyLoading-Methode verwendet wird (wie auch beim Laden eines langen Endlosformulares). Dabei werden die Daten im Hintergrund "gemütlich" Stück für Stück geladen, so wie sie gebraucht werden. Man kann ohne ListCount die Combobox nicht bis zum Ende scrollen, wird irgendwo in der Mitte hängenbleiben, bis weitere Datensätze nachgeladen und eingefügt werden, was sehr nervig ist.

Ich würde den ListCount allerdings auch nicht in den Load-Event legen, sondern in den "Beim Hingehen"-Event der jeweiligen Kombobox. Eine kleine Verzögerung beim ersten Aufklappen ist die Folge, aber bei jedem weiteren nicht mehr (außer man ändert die RowSource).

Das Verhalten kann man aber auch nur bei extrem langen Komboboxlisten (oder ListBox oder Endlosformular) beobachten, wenn man so viele Datensätze hat, sollte man die Kombobox besser gegen ein Endlos-Auswahlformular ersetzen, mit dem man auch eine komfortablere Auswahl programmieren kann.

Gruß

Christian