Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.
Unsere Webseiten benötigen Session-Cookies. Diese scheint Ihr Browser jedoch zu blockieren.
News & Tipps zu Microsoft Access
Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.
Für Tabellen können Sie bekanntlich automatisch Unterdatenblätter mit Detaildaten anzeigen lassen. Access selektiert dann beim Zugriff auf die Tabelle basierend auf den gesetzten Beziehungen die Datensätze für das jeweilige Unterdatenblatt. Besonders problematisch ist die Einstellung "Automatisch" für die Eigenschaft "Unterdatenblattname" in Front-/Backend-Lösungen: Teilweise können hier Minuten vergehen, bevor im Frontend ein Formular angezeigt wird. Grund dafür ist nicht immer eine schlechte Netzwerkperformance, sondern oft auch genau diese Einstellung. Access muss schlimmstenfalls Dutzende von Feldern auf deren Beziehungen prüfen, was unnötig Zeit in Anspruch nimmt. In der Praxis konnten die Ladezeiten einiger Formulare in Test-Szenarien durch eine Änderung dieser Einstellung von 2 Minuten auf 5 Sekunden reduziert werden.
FRAGE In einem Formular kann ich mit Hilfe eines Kombinationsfeldes einen Kunden auswählen. Über eine Schaltfläche Drucken wird dann ein Adressetikett gedruckt. Diesem Bericht liegt eine SQL-Abfrage zugrunde, bei der das Feld des Kombinationsfeldes als Kriterium "[KundenNr]=[Formulare]![frmAuswahl]![AuswahlKunde]" adressiert ist. Auf meinem Entwicklungsrechner funktioniert das einwandfrei. Nun möchte ich die Datenbank bei meinen Anwendern mit der Access Runtime-Umgebung einsetzen. Beim Drucken der Etiketten wird jedoch ein Fenster angezeigt, das nach dem Wert des Kombinationsfeldes fragt.
Viele Berichte erstellen Sie nur für die Ausgabe am Bildschirm, um sich beispielsweise schnell eine Lagerbestandsübersicht anzeigen zu lassen. Bei der Arbeit mit diesen Auswertungen wäre es hilfreich, Detaildaten zu einem Artikel oder zu einem Kunden abrufen zu können. Bis Access 2003 scheiterte das daran, dass in Berichten zwar Schaltflächen oder andere Steuerelemente eingefügt, aber keine entsprechenden Ereignisprozeduren verwendet werden konnten. In den aktuellen Versionen hat Microsoft das endlich geändert, so dass nun auch in Berichten Steuerelemente mit Ereignisprozeduren oder Makros eingesetzt werden können. Unser Tipp erläutert die Umsetzung einer entsprechenden Lösung.
Aus Platzgründen fallen Memofelder im Formular häufig recht klein aus, so dass die Erfassung und das Lesen der Inhalte sehr mühsam ist. Eine Lösung des Problems ist auf verschiedenen Wegen möglich. Sie können mit der Tastenkombination Umschalt + F2 die Zoombox für das Memofeld öffnen oder eine Ereignisprozedur "Bei Doppelklick" nutzen, die die Zoombox programmatisch öffnet. In diesem Tipp zeigen wir außerdem eine weitere Alternative: Erstellen Sie ein separates Formular mit einem entsprechend breitem Textfeld, das für die Bearbeitung von Memofeldern aufgerufen werden kann.
FRAGE In einem Unterformular meiner Access-Datenbank sollen zusätzliche Informationen zum Hauptdatensatz aus einer anderen Tabelle angezeigt werden. Das funktioniert allerdings nur solange in der anderen Tabelle auch mindestens ein Datensatz vorhanden ist. Ist die Tabelle leer, wird immer nur eine leere weiße Fläche in der Größe des Unterformular-Steuerelementes angezeigt. Kann man das irgendwie verhindern?
Wenn Sie längere Texte in einem Memofeld speichern, führt Access einen automatischen Zeilenumbruch durch, so dass der Text immer korrekt lesbar ist. Beim Export solcher Texte zeigen sich dann häufig Probleme, beispielsweise weil die Zielanwendung den Text als eine einzige lange Zeile interpretiert oder der Text nicht in den vorgesehen Bereich passt. Diese Probleme lassen sich lösen, indem der Inhalt des Memofeldes auf einzelne Zeilen mit einer maximalen Zeilenlänge von beispielsweise 50 Zeichen aufgeteilt wird.
FRAGE Ich verwende eine Funktion, die bis zu 10 Parameter akzeptiert, von denen aber in den meisten Fällen nur die ersten zwei oder drei Parameter verwendet werden. Für die übrigen Parameter sollen Vorgabewerte verwendet werden. Gibt es eine Möglichkeit, automatisch Vorgabewerte für Parameter zuzuordnen? Momentan übergeben ich Parameterwerte "" oder "-1" und helfe mir mit Abfragen der Form If Parameter4 = "" Then Parameter 4 = "XYZ". Dadurch benötigt die Funktion natürlich mehr Zeit, was sich zum Beispiel beim Aufruf aus Schleifen deutlich bemerkbar macht.
Damit Sie direkt per SQL aus einer Tabelle zum Beispiel "Top Ten"-Werte mit einem Kriterium wie "Die 10 teuersten Artikel, die mehr als "X" Euro kosten" selektieren können, muss mindestens ein Parameter "X" definiert und abgefragt werden. Während Sie im normalen Abfrageentwurf einfach die Funktion Parameter nutzen und die gewünschten Parameter in einem Dialog definieren, sind in einer SQL-Abfrage entsprechende Statements aufzunehmen. Unser Tipp zeigt wie es geht.
FRAGE Ich verwende eine Funktion, die bis zu 10 Parameter akzeptiert, von denen aber in den meisten Fällen nur die ersten zwei oder drei Parameter verwendet werden. Für die übrigen Parameter sollen Vorgabewerte verwendet werden. Gibt es eine Möglichkeit, automatisch Vorgabewerte für Parameter zuzuordnen? Momentan übergeben ich Parameterwerte "" oder "-1" und helfe mir mit Abfragen der Form If Parameter4 = "" Then Parameter 4 = "XYZ". Dadurch benötigt die Funktion natürlich mehr Zeit, was sich zum Beispiel beim Aufruf aus Schleifen deutlich bemerkbar macht.
Für Tabellen können Sie bekanntlich automatisch Unterdatenblätter mit Detaildaten anzeigen lassen. Access selektiert dann beim Zugriff auf die Tabelle basierend auf den gesetzten Beziehungen die Datensätze für das jeweilige Unterdatenblatt. Besonders problematisch ist die Einstellung "Automatisch" für die Eigenschaft "Unterdatenblattname" in Front-/Backend-Lösungen: Teilweise können hier Minuten vergehen, bevor im Frontend ein Formular angezeigt wird. Grund dafür ist nicht immer eine schlechte Netzwerkperformance, sondern oft auch genau diese Einstellung. Access muss schlimmstenfalls Dutzende von Feldern auf deren Beziehungen prüfen, was unnötig Zeit in Anspruch nimmt. In der Praxis konnten die Ladezeiten einiger Formulare in Test-Szenarien durch eine Änderung dieser Einstellung von 2 Minuten auf 5 Sekunden reduziert werden.
Dieses Blog präsentiert Inhalte aus den E-Mail-Newslettern von SmartTools Publishing. Premium-Beiträge, die mit [S+] gekennzeichnet sind, sind Newsletter-Abonnenten vorbehalten.
Jetzt Abonnent werden
Falls Sie SmartTools Access Weekly noch nicht abonniert haben, können Sie sich jetzt anmelden – kostenlos und innerhalb weniger Minuten! Sie erhalten dann umgehend ein Passwort, das alle Premium-Beiträge für Sie freischaltet.
[S+] Inhalte freischalten
Wenn Sie SmartTools Access Weekly bereits beziehen, geben Sie hier Ihr Abonnenten-Passwort ein, um alle Premium-Beiträge freizuschalten:
Tipp: Sie finden das gültige Passwort immer am Ende der neuesten Ausgabe Ihres Newsletters.