Tipp 2.16 - Formular-Optimierung
Wie kann ich die Leistung meiner Formulare besser optimieren?
In Ihren Formularen können Sie einiges zur Verbesserung der Leistung tun. Dazu gehören Techniken zum schnellen Laden von Formularen sowie spezielle Tipps und Tricks in Bezug auf OLE und speziellen Programmierverfahren, die nur für Formulare relevant sind.
Die Techniken zur Optimierung von Formularen lassen sich in zwei Kategorien unterteilen:
- in solche, die die Ladezeit verkürzen, und solche,
- mit denen sich Objekte im Formular effizienter bearbeiten lassen.
Hinweis: Sie haben im Moment keine Zeit, möchten sich aber später mit dem Thema beschäftigen? Kein Problem, hier erhalten Sie das Tutorial als PDF-Dokument (ab Acrobat Version 5.0):
Dateidownload: Tipp 2.16 - Formular-Optimierung
Autor: Manuela Kulpa
Dateigröße/-typ: 108.0 KB (pdf)
Erstellt am: 28. März 2006
Downloads: 502
Ladezeit
Je umfangreicher ein Formular ist und je mehr Steuerelemente und Objekte Sie darauf untergebracht haben, desto geringer ist die Effizienz. Achten Sie darauf, dass sich die Steuerelemente nicht überschneiden. Außerdem ist es sehr vorteilhaft, Formulardaten auf logischen Seiten (Registersteuerelement) zusammenzufassen. Das ist besonders wichtig, wenn Ihre Benutzer nicht über ausrechend Bildschirmspeicher verfügen. Objekte auf Folgeseiten sollten erst mit Daten gefüllt werden, wenn sich der Benutzer zu den betreffenden Seiten begibt.
Formulare und deren Steuerelemente sollten auf gespeicherten Abfragen basieren. Nehmen Sie nur Felder auf, die das Formular in der zu Grunde liegende Abfrage benötigt. Vermeiden Sie Abfragen mit der Auswahl *. Da die interne Optimierung der Abfrage-Ergebnisse in Microsoft Access so effizient ist, wird dadurch die Leistung Ihrer Formulare gesteigert.
Reduzieren Sie, um die Leistungsfähigkeit von Abfragen noch stärker zu nutzen, die Anzahl der Datensätze, welche die Abfrage zurückgibt, indem Sie nur die zu einem bestimmten Zeitpunkt benötigten Datensätze laden.
Wenn Sie ein Formular lediglich benutzen wollen, um neue Datensätze hinzuzufügen, setzen Sie die Eigenschaft: Daten eingeben des Formulars auf Ja, so dass es mit einem leeren Datensatz geöffnet wird. Das ist notwendig, weil Access sonst alle Datensätze einlesen muss, um am Ende der Datensatzgruppe den leeren Datensatz anzeigen zu können.
Steuerelemente / Objekte
Vermeiden Sie, falls möglich, Bilder und andere Grafikobjekte. Wenn Sie ein Bild anzeigen müssen, sollten Sie unbedingt darauf achten, dass OLE-Objekte weit mehr Ressourcen beanspruchen als Bilder. Versuchen Sie, wenn die Möglichkeit besteht, das Bild zu verknüpfen, anstatt es direkt im Formular einzubetten. Konvertieren Sie ein OLE-Objekt (falls Sie z.B. ein Bild über die Zwischenablage eingefügt haben) in ein Bild. Dazu klicken Sie mit der rechten Maustaste auf das Objekt und wählen Sie im Kontext-Menü den Befehl Ändern zu – Bild.
Unterlassen Sie, soweit möglich, die Verwendung untergeordneter Formulare. Microsoft Access behandelt ein Unterformular wie ein eigenständiges Formular. Deshalb belegt es eine erhebliche Menge Speicher. Achten Sie darauf, dass alle Felder eines Unterformulars, die entweder mit dem Hauptformular verknüpft sind oder als Kriterium benutzt werden, einen Index besitzen.
Stellen Sie sicher, dass nur die nötigen Felder in die Datensatzquelle des Unterformulars aufgenommen werden. Setzen Sie, wenn die Daten im Unterformular nicht bearbeitet werden, die Eigenschaft Bearbeiten zulassen, Anfügen zulassen und Löschen zulassen auf Nein oder die Eigenschaft Recordsettyp auf Snapshot.
Achten Sie darauf, dass die Datensatzherkunft für ein Kombinationsfeld nur die, für dieses Feld erforderlichen Spalten enthält. Indizieren Sie nach dem ersten Feld, das im Kombinationsfeld erscheint. Das wirkt sich erheblich auf die Geschwindigkeit aus, mit der sich der Benutzer auf ein Element des Kombinationsfeldes bewegen kann. Außerdem sollten Sie, wo immer möglich, das erste sichtbare Feld eines Kombinationsfeldes zum Textfeld machen. Access konvertiert numerische Felder in Textfelder, wenn es das Kombinationsfeld nach einem passenden Wert durchsucht.
Erstellen Sie schließlich Listen- und Kombinationsfelder nicht auf der Grundlage von verknüpften Daten, falls diese nur selten oder überhaupt nicht geändert werden. Machen Sie stattdessen die statische Tabelle zur lokalen und aktualisieren Sie diese, wann immer es nötig ist.
Sonstiges
Eine allgemeine Regel im Hinblick auf die Leistung von Formularen besagt, dass alle Datenbankobjekte mit Ausnahmen der Daten auf dem Rechner jedes Benutzers vorhanden sein sollten (lokale gespeichert). Das beseitigt die Notwendigkeit, ständig Objektdefinitionen über das Netzwerk herbeischaffen zu müssen.
Schließen Sie nicht mehr benötigte Formulare. Geöffnete Formulare belegen Arbeitsspeicher und Ressourcen und verringern damit die Leistung.
Ein weiterer Tipp zur Leistungssteigerung ist die Verwendung von Standardformatierungen und -Eigenschaften für möglichst viele Steuerelemente. Damit steigt die Leistung deutlich, weil nur diejenigen Formular- und Steuerelementeigenschaften, die davon abweichen, zusammen mit dem Formular gespeichert werden.
Beseitigen Sie schließlich Code-Module aus den Formularen, die Sie innerhalb des Formulars nicht benötigen oder lagern Sie diese in allgemeine Modulen bzw. Klassen aus. Ein Formular ohne Formularmodule wird wesentlich schneller geladen. Funktionsprozeduren aus einer Ereignisprozedur lassen sich mit Hilfe eines Ausdrucks trotzdem aufrufen. Sie können sich auch mit Hilfe von Hyperlinks vom Formular aus durch die Anwendung bewegen. Das mit einem Formular verknüpfte Modul lässt sich schnell entfernen, indem Sie die Eigenschaft Enthält Modul auf Nein setzen.
Noch ein kleiner Hinweis zum Schluss
Um die Leistung Ihrer Formulare zu optimieren, gibt es viele Möglichkeiten – von der Verwendung eines Front-End-Werkzeugs wie der Leistungsanalyse bis hin zur strengen Einhaltung bestimmter Programmiertechniken. Dieser Tipp beleuchtet nur einige Möglichkeiten, die Ihnen zur Leistungsoptimierung zur Verfügung stehen.