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.
Wenn Sie in umfangreichen Datenbanken Tabellen anlegen und löschen und zwischendurch immer wieder die Beziehungen bearbeiten, verweigert Access irgendwann den Zugriff auf die Funktion Beziehungen mit einer Fehlermeldung. Bei Datenbanken mit Inkonsistenzen kann es auch zu einem Absturz beim Aufruf dieser Funktion kommen. Lösen lassen sich solche Probleme, indem Sie die Beziehungen per VBA löschen und die Datenbank einmal komprimieren.
FRAGE Ich möchte automatisch Nachrichteninhalte aus Outlook auslesen und in einer Tabelle speichern, scheitere jedoch schon daran, eine Verbindung zu Outlook aufzubauen. Mit "CreateObject()" funktioniert es zwar generell, aber es wird, wenn Outlook bereits läuft, immer eine zweite Outlook-Instanz gestartet. Ich möchte aber das bereits laufende Outlook und den darin ausgewählten Nachrichtenordner verwenden. Wie gehe ich dazu am besten vor?
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.
In den meisten Fällen sind Sie für die kleinen Korrekturen dankbar, die Access über die AutoKorrektur bei der Dateneingabe vornimmt. Aus "dre" wird beispielsweise "der" und "Herrn MÜller" ändert Access automatisch wieder in "Herrn Müller". Sie finden das Dialogfeld über Datei-Access-Optionen-Dokumentprüfung-AutoKorrektur-Optionen. Wenig bekannt ist die Tatsache, dass Sie die AutoKorrektur bei Bedarf auch ganz gezielt für einzelne Felder deaktivieren können.
FRAGE In einer Datenbank soll zu jedem Artikel ein Bild gespeichert werden. Dazu haben wir ein Feld "Artikelfoto" vorgesehen, in dem ein Pfad/Dateiname wie z.B. "F:\Bilder\Artikel_89243756892.jpg" festgehalten wird. Dieses Bild soll nun über eine Schaltfläche Anzeigen mit IrfanView als festem Viewer angezeigt werden. Wie müssen die Anweisungen dazu aussehen? Außerdem würden wir gerne die Auswahl des Bildes per Dialog vornehmen. Wie lässt sich das realisieren?
Im ersten Teil dieses Tipps hatten wir zur zeilenweisen Sortierung von Memo-, Listen- und Kombinationsfeldern zunächst die Basis in Form der Prozedur "QuickSortArray" geschaffen und gezeigt, wie Sie eine Schaltfläche und ein Kontrollkästchen in ein Formular zur wahlweise auf- oder absteigenden Sortierung der Zeilen eines Memofeldes einbauen. Im zweiten Teil geht es nun um den Einsatz dieser Prozedur mit Listen- und Kombinationsfeldern.
Manchmal verweigert Access beim Öffnen einer Datenbank den Zugriff mit einer Fehlermeldung, nach der die Datenbank beschädigt ist und repariert werden muss. Der daraufhin durchgeführte Reparaturdurchgang erlaubt zwar anschließend das Öffnen der Datenbank, beim Zugriff auf einzelne Objekte werden aber weiterhin Fehlermeldungen angezeigt oder Access stürzt sogar komplett ab. Bevor Sie in solchen Fällen die betreffenden Objekte löschen und neu aufbauen, sollten Sie folgenden "Reparaturversuch" unternehmen.
FRAGE Ich nutze ein Formular mit einem Unterformular und möchte nun per VBA die Datensätze aus beiden Formularen kopieren. Das funktioniert auch, aber es kann natürlich vorkommen, dass das Unterformular mehr als einen Datensatz hat. Ich suche nun nach einer Möglichkeit, das Unterformular programmatisch anzusprechen und es den nächsten Datensatz positionieren. Am sinnvollsten würde ich in einer Schleife immer aller Datensätze nacheinander durchlaufen. Wie muss ich dazu vorgehen?
Die Eigenschaft Tabledefs(<Tabelle>).Connect wird in vielen Datenbanken verwendet, um zum Beispiel den Connection-String von Pass-Through-Abfragen zu definieren. Nach dem Microsoft 365-Update auf die Version 2312 im aktuellen Kanal (Current Channel) am 4.1.2024 funktionierten mit einem Schlag plötzlich die meisten Datenbanken mit einem SQL Server-Backend nicht mehr. Der Grund: die .Connect-Eigenschaft verschluckte einfach das erste Semikolon im Connection-String, so dass zum Beispiel aus "ODBC;DSN" plötzlich "ODBCDSN" wird. Der Bug wurde inzwischen von Microsoft behoben.
In Ihren Datenbanken verwenden Sie regelmäßig Memofelder, in denen Informationen zeilenweise abgelegt sind. Wenn Sie den Inhalt eines solchen Memofeldes sortieren möchten, finden Sie dazu in Access oder VBA keine Unterstützung. Ähnliches gilt für Listenfelder, die Sie per "AddItem" aus einem Array aufbauen oder für Kombinationsfelder, bei denen Sie aus einem Array eine Werteliste zusammensetzen und zuweisen möchten. Auch für diese Steuerelemente suchen Sie vergeblich nach einer Sortierfunktion. In diesem zweiteiligen Tipp stellen wir eine Lösung vor, die Sie zukünftig für alle Sortieraufgaben in Ihren Datenbanken heranziehen können.
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.