Wie programmiere ich effizientes Scrollen in Endlosformularen mit optimierter UI-Darstellung?

Endlosformulare/“>Endlosformulare („Continuous Forms“) sind in Microsoft Access ein beliebtes Gestaltungsmittel – ideal fĂŒr Benutzer:innen, die viele DatensĂ€tze schnell durchsuchen, vergleichen oder bearbeiten wollen. Sie eignen sich besonders fĂŒr:

  • Kundenlisten, BestellĂŒbersichten, VorgĂ€nge
  • Ticketsysteme oder Projektaufgaben
  • Dokumenten- oder Rechnungsverwaltung

Doch bei großen Datenmengen und vielen Steuerelementen in einem Endlosformular kann es ruckelig, trĂ€ge oder visuell unĂŒbersichtlich werden. Das betrifft sowohl das Scrollverhalten als auch die Lesbarkeit und Performance.

Die gute Nachricht: Mit ein paar Tricks und gezieltem VBA-Code kannst Du die Benutzererfahrung deutlich verbessern.

Ursachen fĂŒr trĂ€ges Scrollverhalten

Typische Ursachen fĂŒr Performance-Probleme in Endlosformularen:

  • Zuviele Steuerelemente oder komplexe Formatierungen (Bedingte Formatierung!)
  • UngĂŒnstige Datensatzquelle (ungeschlĂŒsselte Abfragen, Joins, fehlende Indizes)
  • Rechenintensive VBA-Ereignisse bei OnCurrent, OnFormat, etc.
  • Unnötige Refresh/Me-Requeries
  • Nicht gebundene Steuerelemente mit komplexer Logik

Ein weiterer Stolperstein: Access bietet kein native Scrollereignis, das Du abfangen kannst. Aber es gibt Alternativen.

Ziel: Glattes Scrollen und klare Darstellung

Folgende Ziele sind sinnvoll:

  • Der Fokus bleibt beim Scrollen immer sichtbar
  • Kein Flackern oder Springen beim Bearbeiten
  • Bei Fokus auf einen Datensatz wird dieser visuell hervorgehoben
  • Navigation kann per Tastatur oder Buttons erfolgen
  • Die Datenmenge wird im Formular auf sinnvolle Teilmengen begrenzt

Beispiel: Scrollen per Button mit visuellem Fokus

Statt sich auf das Mausrad oder die Scrollbar zu verlassen, kannst Du Scrollen per SchaltflĂ€che erlauben – und gleichzeitig den aktuell aktiven Datensatz visuell hervorheben.

Schritt 1: Buttons einfĂŒgen

FĂŒge z. B. zwei SchaltflĂ€chen in den Formularkopf ein:

  • cmdVor → zum Scrollen nach unten
  • cmdZurueck → zum Scrollen nach oben

Schritt 2: Markiertes Element hervorheben

FĂŒge ein unsichtbares Textfeld ein, z. B. txtAktiveID, in das die aktuelle ID geschrieben wird. Mit bedingter Formatierung oder per VBA hebst Du dann den aktiven Datensatz hervor.

Schritt 3: VBA-Code zum Scrollen und Markieren

Private Sub cmdVor_Click()
    On Error Resume Next
    Me.Recordset.MoveNext
    If Me.Recordset.EOF Then
        Me.Recordset.MoveLast
    End If
    Call MarkiereAktuellenDatensatz
End Sub

Private Sub cmdZurueck_Click()
    On Error Resume Next
    Me.Recordset.MovePrevious
    If Me.Recordset.BOF Then
        Me.Recordset.MoveFirst
    End If
    Call MarkiereAktuellenDatensatz
End Sub

Private Sub Form_Current()
    Call MarkiereAktuellenDatensatz
End Sub

Private Sub MarkiereAktuellenDatensatz()
    On Error Resume Next
    Me.txtAktiveID = Me!ID  ' "ID" durch PrimĂ€rschlĂŒssel ersetzen
    Me.Repaint  ' Aktualisiert die Darstellung
End Sub

Schritt 4: Bedingte Formatierung (optional)

Markiere das Detail-Steuerelement, z. B. txtName, und hinterlege in der bedingten Formatierung:

Ausdruck ist: [ID] = [Form]![txtAktiveID]
→ Format: Hintergrund hellgelb, Text fett o. Ă€.

So sieht der aktive Datensatz sofort anders aus – auch beim Scrollen mit den Pfeilbuttons.

Bonus: Anzahl der DatensÀtze begrenzen

Wenn Du nicht Tausende DatensĂ€tze in einem Formular laden willst, kannst Du das Formular beim Öffnen z. B. auf die letzten 100 EintrĂ€ge beschrĂ€nken:

Private Sub Form_Open(Cancel As Integer)
    Me.RecordSource = "SELECT TOP 100 * FROM tbl_Kunden ORDER BY ErstellDatum DESC"
End Sub

Du kannst auch dynamisch filtern – etwa ĂŒber ein Suchfeld oder Dropdown-MenĂŒ.

Tipps fĂŒr flĂŒssige UI in Endlosformularen

  • Halte das Formular visuell simpel: keine ĂŒberladenen Farben, keine Schatten oder Bilder
  • Vermeide „Me.Requery“ – nutze stattdessen Me.Repaint oder Me.Refresh
  • Platziere Buttons und Filter-Elemente außerhalb des Detailbereichs
  • Halte Form_Current() schlank – keine aufwĂ€ndigen Berechnungen dort!
  • Verwende ggf. nur ein oder zwei bedingte Formatierungen

Fazit

Mit ein wenig VBA und Design-SensibilitĂ€t lĂ€sst sich auch in einem klassischen Access-Endlosformular ein modernes, flĂŒssiges Scroll-Erlebnis erzeugen – ganz ohne externe Steuerelemente oder aufwĂ€ndige Add-ins. Du steuerst selbst, wie der Fokus sich verhĂ€lt, wie die Darstellung lĂ€uft und wie viele DatensĂ€tze ĂŒberhaupt gezeigt werden.

Wenn Du Deine Anwendung professionell strukturieren, optisch aufwerten und technisch performant halten möchtest, unterstĂŒtze ich Dich gern bei der Umsetzung.

🐑 DatenschĂ€fer – Analyse, Auswertung und Automatisierung fĂŒr KMU im Norden
📧 Kontakt ĂŒber sesoft.de | đŸ’Œ Access · VBA · UI/UX · SQL · Power Platform

Kategorien:

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert