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 untencmdZurueck
â 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
oderMe.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
Keine Antworten