Änderungshistorie implantieren
Die neuen Tabellenereignisse, die mit Access 2010 eingeführt wurden, erlauben die automatische Sicherung von Tabellendaten vor der Durchführung von Änderungen an den Datensätzen. Dazu legen Sie entsprechende Datenmakros an, die durch die Tabellenereignisse ausgelöst werden. Außerdem benötigen Sie eine Tabelle, welche die geänderten Datensätze speichert. Wenn Sie beides für mehrere Tabellen durchführen wollen, ist dies eine Menge Handarbeit. Grund genug, diesen Vorgang zu automatisieren.
Nach Daten im Unterformular suchen
Die Konstellation von Haupt- und Unterformular zur Darstellung von Daten aus 1:n- beziehungsweise m:n-Beziehungen ist bekannt. Einen Datensatz im Hauptformular zu suchen ist auch kein Hexenwerk. Aber wie sieht es aus, wenn wir das Hauptformular nach den Datensätzen filtern wollen, deren verknüpfte Tabelle einen Datensatz mit einem bestimmten Kriterium enthält? Und wenn wir dann noch einen Schritt weitergehen und noch den ersten passenden Datensatz im Unterformular markieren wollen? Wie dies gelingt, zeigt der vorliegende Beitrag.
Outlook-Mails in Access archivieren III
Die Archivierungs-Datenbank für Outlook-Mails kann nun schon Mails importieren und bietet eine Suchfunktion für die importierten Mails an. Außerdem können Sie die gefundenen E-Mails mit Outlook öffnen und darin wiederherstellen. Nun wollen wir die Lösung noch so erweitern, dass Sie beispielsweise mehrere Ordner in Outlook auswählen können, deren E-Mails importiert werden sollen. Außerdem soll der Import gleich beim Start der Anwendung gelingen.
Spaltenbreiten optimieren mit Klasse
Wenn Sie Daten in der Datenblattansicht von Unterformularen anzeigen, stoßen Sie immer wieder auf das Problem, dass die Spaltenbreiten nicht gleich zu Beginn optimal an die Inhalte der Spalten angepasst werden – also an die Breite der angezeigten Daten. Immerhin kann der Benutzer die Breite in der Regel selbst anpassen. Praktischer aber wäre es, wenn die Spaltenbreiten gleich beim Anzeigen der Daten optimiert würden. Der vorliegende Beitrag zeigt eine kleine Klasse, mit der Sie dies bewerkstelligen können.
Datenblattereignisse mit Klasse
Wenn Sie Ereignisse auslösen möchten, sobald der Benutzer an irgendeine Stelle eines Datensatzes in der Datenblattansicht klickt, müssen Sie theoretisch für jedes einzelne Steuerelement eine entsprechende Ereignisprozedur anlegen. Bei Formularen mit vielen Feldern kann das recht mühselig werden. Daher stellt dieser Beitrag eine Klasse vor, der Sie das Unterformular in der Datenblattansicht übergeben und die Ihnen Ereignisse für die gängigen Ereignisse wie Klick, Doppelklick et cetera bereitstellt. Diese müssen Sie dann nur noch einfach im Hauptformular implementieren.
Kundendatensätze zusammenführen
Wer eine Kundendatenbank pflegt, wird früher oder später Dubletten in seiner Datenbank vorfinden. Sei es, weil Kunden sich mit neuer E-Mail und neuer Adresse erneut im Onlineshop anmelden und von dort importiert werden oder weil man bei der Suche nach einem vorhandenen Konto für einen Kunden wegen eines Tippfehlers keinen Treffer landet – langfristig lassen sich doppelte Kundendatensätze nicht verhindern. Aber das ist kein Problem: In Datenbanken lässt sich zum Glück alles nachträglich ändern. Wie dies bei Kundendaten und den damit verknüpften Daten wie etwa Bestellungen funktioniert, erklärt dieser Beitrag.
Titel des aktiven Fensters ermitteln
Wenn Sie den Titel des aktuellen Fensters, also beispielsweise des Access-Fensters, ermitteln möchten (s. Bild 1), benötigen Sie zwei API-Funktionen und eine VBA-Funktionen, welche die beiden zum Ermitteln des Fenstertitels nutzt.
Access-Titel per VBA ändern
Den Titel des Access-Fensters können Sie manuell oder per VBA ändern. Dieser Beitrag stellt beide Methoden vor.
Access-Fenster in den Vordergrund holen
Wenn Sie von Access aus einmal ein anderes Fenster aufrufen, möchten Sie vielleicht sicherstellen, dass der Blick nach dem Abschließen der dort durchgeführten Arbeiten wieder bei der Access-Anwendung landet. Wenn Sie etwa von Access aus den Dialog zum Auswählen eines Outlook-Ordners auswählen und das Outlook-Fenster ist zu diesem Zeitpunkt bereits geöffnet, dann gerät nach dem Schließen des Dialogs das Outlook-Fenster in den Vordergrund.
Primärschlüsselfelder ermitteln
Für die eine oder andere Anforderung benötigen Sie das Primärschlüsselfeld beziehungsweise die Primärschlüsselfelder einer Tabelle. Dieser Beitrag liefert zwei Funktionen, mit denen dies möglich ist.
Verknüpfte Tabellen ermitteln
Wenn Sie herausfinden wollen, welche Tabellen über ein Fremdschlüsselfeld mit einer gegebenen Tabelle verknüpft sind, benötigen Sie ein paar Zeilen DAO-Code. Die hier vorgestellte Funktion erwartet den Namen der zu untersuchenden Tabelle und enthält zwei weitere Parameter, die zur Rückgabe der Ergebnisse vorgesehen sind.
Primärschlüssel in Verknüpfungstabelle nachrüsten
Einige Verknüpfungstabellen für die Herstellung von m:n-Beziehungen verwenden ihre beiden Fremdschlüsselfelder als zusammengesetzten Primärschlüssel. Das ist in manchen Fällen unpraktisch, zum Beispiel, wenn Sie mal die Datensätze dieser Tabelle referenzieren wollen – Sie müssten dann immer gleich zwei Fremdschlüsselfelder in der referenzierenden Tabelle angeben.
Outlook-Mails nach Empfang archivieren
In der Beitragsreihe »Outlook-Mails in Access archivieren« haben wir gezeigt, wie Sie die E-Mails aus kompletten und auch untergeordneten Outlook-Ordnern in eine Access-Datenbank importieren. Das ist die Lösung für den Start der Archivierung. Interessant wird es erst, wenn Sie diese Daten direkt nach dem Eingang in Outlook archivieren. Der vorliegende Beitrag zeigt, wie Sie Outlook so erweitern, dass jede in vorgegebenen Ordnern eingehenende E-Mail direkt in unsere Access-Mail-Archiv weitergeleitet wird.