SQL ausführen mit Execute statt DoCmd.RunSQL

In unseren Audits mit unseren Kunden und Lesern untersuchen wir auch regelmäßig den VBA-Code in deren Access-Anwendungen. Dabei fallen uns immer wieder Programmiergewohnheiten auf, die irgendwann einmal eingeführt und seitdem nie wieder geändert wurden. Eine davon ist, SQL-Anweisungen wie INSERT INTO, UPDATE oder DELETE mit der Methode RunSQL der DoCmd-Klasse auszuführen. Das ist grundsätzlich nicht falsch, solange dies zum Ziel führt. Es gibt jedoch noch mindestens eine Alternative, insbesondere den Aufruf mit der Execute-Methode der Database-Klasse. Diese führt zwar auch nur die übergebene Aktionsabfrage aus, aber sie bietet dennoch einige Vorteile gegenüber DoCmd.RunSQL. Welche das sind und wie wir überhaupt die DoCmd.RunSQL-Methode durch die Execute-Methode ersetzen können, zeigen wir in diesem Beitrag.

Weiterlesen

Erledigt-Status in Haupt- und Unterformular synchron

Ein Kunde hatte neulich die Anforderung, dass er Produktionsaufträge mit den zu produzierenden Teilen im Haupt- und Unterformular abbilden wollte. An sich kein Problem, wenn man Haupt- und Unterformular entsprechend verknüpft. Er wünschte sich jedoch sowohl in der Tabelle der Produktionsaufträge als auch in der für die Teile jeweils ein Kontrollkästchen, das den Status abbildet. Wenn der vollständige Auftrag erledigt ist, soll dieser samt Teileliste einen Haken erhalten. Ist der Auftrag noch offen, sind alle Kontrollkästchen leer. Aber wenn nicht alle Teile fertig produziert sind, sollte dies im Produktionsauftrag auf eine spezielle Art gekennzeichnet werden. Er hat dabei den Dreifachstatus des Kontrollkästchens entdeckt und wünschte sich, dass das Kontrollkästchen in diesem Fall für den Produktionsauftrag den dritten Status anzeigt – in aktuellen Access-Versionen ein gefülltes Kontrollkästchen mit einem Minus-Zeichen. Wie das gelingt und wie wir die Zustände von Produktionsauftrag und Teilen synchron halten, zeigen wir in diesem Beitrag.

Weiterlesen

Daten anonymisieren per Access-Add-In

Es gibt verschiedene Gründe zum Anonymisieren von Daten. Einer ist, dass man Daten aus Datenschutzgründen verfremden möchte, deren Aufbewahrungsfrist abgelaufen ist, aber die man grundsätzlich noch behalten möchte – zum Beispiel um eine Historie der Umsatzentwicklung zu erhalten und gleichzeitig die Kundendaten nicht unnötig lange vorzuhalten. Ein anderer ist, dass man eine Datenbank zur Ansicht oder für die Weiterentwicklung an einen anderen Software-Entwickler weitergeben möchte. Auch wenn es das Instrument der Vertraulichkeitsvereinbarung gibt, kann es doch nicht schaden, diese Daten erst gar nicht aus dem Haus zu geben. In diesem Beitrag stellen wir ein Add-In vor, das Access eine Funktion zum Anonymisieren von Daten hinzufügt. Das Grundgerüst dazu haben wir bereits im Beitrag „Daten anonymisieren“ (www.access-im-unternehmen.de/1112) vorgestellt. Im vorliegenden Beitrag erweitern und optimieren wir diese Lösung und bauen sie so um, dass sie auch als Add-In auf die Inhalte der aktuellen Datenbank angewendet werden kann.

Weiterlesen

Objektnamen-Autokorrektur in Access nutzen

Microsoft Access bietet eine praktische Funktion namens Objektnamen-Autokorrektur. Sie sorgt dafür, dass Änderungen an den Namen von Tabellen oder Tabellenfeldern automatisch auf anderen Elemente übertragen werden, welche diese Tabellen oder Felder referenzieren. In diesem Beitrag schauen wir uns an, wie die Objektnamen-Autokorrektur aktiviert wird, wie sie funktioniert und warum sie nicht in jeder Phase des Lebenszyklus einer Access-Anwendung sinnvoll ist.

Weiterlesen

Icons per ImageList und VBA im ListView-Control

Wer einmal mit dem ListView-Steuerelement gearbeitet hat und diesem Icons hinzufügen wollte, hat diese üblicherweise erst umständlich ins ImageList-Steuerelement eingefügt, um diese dann im ListView-Steuerelement anzeigen zu können. Dabei bietet Microsoft Access seit langem die Möglichkeit, Icons komfortabel in einer Tabelle namens MSysResources zu speichern. Die Icons lassen sich einfach durch Auswahl über die Eigenschaft Bild zu Bild-Steuerelementen oder Schaltflächen hinzufügen. In diesem Beitrag zeigen wir, wie wir die Bilder aus der Tabelle MSysResources einfach zu einem ImageList-Steuerelement addieren können, um diese dann im ListView-Steuerelement zu den einzelnen Einträgen hinzuzufügen.

Weiterlesen

m:n-Beziehung mit Drag and Drop per ListView

Wir haben uns bereits in einigen Beiträgen angesehen, wie man die Daten einer m:n-Beziehung mit zwei nebeneinander liegenden Listenfeldern verwalten kann. Das Hinzufügen oder Entfernen erfolgte dabei per Doppelklick auf den jeweiligen Eintrag oder über entsprechende Schaltflächen. Im Gegensatz zu Listenfeldern können wir im ListView-Steuerelement jedoch auch Drag and Drop einsetzen. Wie das grundlegend funktioniert, haben wir uns bereits im hinteren Teil des Beitrags „ListView-Steuerelement mit VBA programmieren“ (www.access-im-unternehmen.de/1573) angesehen. Im vorliegenden Beitrag schauen wir uns an, wie wir die Daten aus zwei ListView-Steuerelementen per Drag and Drop hin- und herschieben können.

Weiterlesen

ListView aus Tabellen oder Abfragen füllen, Teil 1

In den Beiträgen „Listen anzeigen mit dem ListView“-Steuerelement (www.access-im-unternehmen.de/1572) und „Listen anzeigen mit dem ListView-Steuerelement“ (www.access-im-unternehmen.de/1572) haben wir die Grundlagen zum ListView-Steuerelement und die Programmierung per VBA erläutert. Dort haben wir das ListView-Steuerelement erst einmal nur mit einfachen Beispieldaten gefüllt. Im vorliegenden Artikel gehen wir einen Schritt weiter und ziehen als Datenquelle echte Daten aus Tabellen oder Abfragen heran. Die Besonderheit des ListView-Steuerelements gegenüber dem herkömmlichen Listenfeld ist dabei, dass dieses nicht einfach an eine Datenquelle gebunden werden kann. Stattdessen müssen wir jeden einzelnen Eintrag per VBA-Code einfügen. Wie das gelingt, zeigen wir auf den folgenden Seiten.

Weiterlesen

ListView-Steuerelement mit VBA programmieren

Im Beitrag „ListView-Steuerelement mit VBA programmieren“ (www.access-im-unternehmen.de/1573) haben wir gezeigt, wie wir mit dem ListView-Steuerelement arbeiten können. Dort haben wir bereits einige grundlegende VBA-Techniken gezeigt, mit denen wir das ListView-Steuerelement in den verschiedenen Ansichten mit Daten gefüllt haben. Im vorliegenden Beitrag geht es nun weiter: Wir zeigen, wie wir das Steuerelement per VBA programmieren können. Dabei liegt der Fokus auf den Methoden, mit denen wir auf Benutzereingaben reagieren oder verschiedene Informationen auslesen – zum Beispiel das aktuell markierte Element. Auch auf Mehrfachauswahl gehen wir ein, die wir sowohl setzen als auch auslesen werden. Und natürlich wird auch Drag and Drop eine Rolle in diesem Beitrag spielen.

Weiterlesen

Listen anzeigen mit dem ListView-Steuerelement

Die Datenblatt-Ansicht und das Listenfeld sind die bevorzugten Bordmitteln, um Daten in Access in Listenform anzuzeigen. Beide haben Vor- und Nachteile. Doch es gibt auch noch das ListView-Steuerelement, das als ActiveX-Control kommt und mit dem sich viele unterschiedlichen Ansichten realisieren lassen. In diesem Beitrag schauen wir uns an, wie wir Listen mit dem ListView-Steuerelement abbilden können – inklusive Funktionen wie Kontrollkästchen, Icons, Umbenennen und vielen mehr.

Weiterlesen

E-Mails senden mit CDO und Gmail

Im Beitrag „E-Mails versenden mit CDO“ (www.access-im-unternehmen.de/1363) haben wir beschrieben, wie man grundsätzlich E-Mails mit der CDO-Bibliothek versenden kann. Im vorliegenden Beitrag schauen wir uns nun an, wie sich dies erledigen lässt, wenn man ein Gmail-Konto verwendet. Dazu legen wir ein Gmail-Konto an, sofern noch nicht vorhanden, holen uns das benötigte App-Passwort und stellen dann den Code zusammen, mit dem wir per VBA eine E-Mail über dieses Konto versenden können. Die auf diese Weise versendeten E-Mails können wir nachher sogar in der Benutzeroberfläche von Gmail einsehen.

Weiterlesen