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.
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.
FRAGE Aus einem Listenfeld (Listbox) mit den Feldern "Kundennummer" (Autowert, bei der Eingabe gesetzt) und "Kundenname", ca. 100 Einträge, möchte ich durch Anklicken des Kundennamens diesen Namen in den Report "Daten des Kunden" übertragen. Hinter diesem Report steht eine Abfrage gleichen Namens, die in dem Feld "Kundenname" als Kriterium "[Kundenname].[Name]" hat. Bei normalem Aufruf des Reports erscheint ein Fenster, in dem nach dem Kundenamen gefragt wird. Diese zusätzliche Eingabe möchte ich vermeiden, und durch das Anklicken aus dem Listenfeld ersetzen.
Bei der Entwicklung von Datenbanken werden oft SQL-Anweisungen eingesetzt - beispielsweise per VBA und "DoCmd.RunSQL" oder "CurrentDb.Execute". In vielen Fällen bietet es sich an, zunächst eine "normale" Abfrage zu entwerfen, und die SQL-Entsprechung dann in den VBA-Editor zu übernehmen. Genau diese Aufgabe nimmt Ihnen in Zukunft das kostenlose SmartTools SQL aus Abfragen 5.1 ab. Nach dem Aufruf zeigt das Add-In zu jeder Abfrage Ihrer Datenbank automatisch die zugehörige SQL-Anweisung, die Sie dann per Mausklick fertig formatiert in Ihr VBA-Modul übernehmen.
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.