Die UNION Abfrage

Auswahlabfragen liefern normalerweise immer die Daten aus einer einzigen Tabelle oder aus mehreren miteinander verknüpften Tabellen. In letzterem Fall soll die Abfrage immer die Kombination der Daten von verknüpften Tabellen liefern. Gelegentlich sollen die Daten von zwei oder mehr Tabellen in einer Abfrage aber auf andere Art zusammengestellt werden – nämlich so, dass die Datensätze dieser Tabellen jeweils als einzelne Datensätze erscheinen. So lassen sich dann beispielsweise Daten wie die Namen und Geburtsdaten von Personal und Kunden in einer Abfrage zusammenstellen und können als Geburtstagsliste dienen. Wie Sie UNION-Abfragen formulieren und was dabei zu beachten ist, zeigt dieser Beitrag.

Weiterlesen

Rückgängig in Memofeldern

Seit Access 2007 bietet Access für Memofelder die Möglichkeit, die verschiedenen Versionen zu speichern. Wie aber können wir solche Änderungen wieder rückgängig machen, ohne dass der Benutzer die eingebauten Funktionen dafür nutzen muss oder gar ein extra Formular, dass die bisher gespeicherten Versionen anzeigt Sondern einfach etwa mit zwei Schaltflächen, mit denen er zwischen den vorhandenen History-Einträgen hin- und herblättern kann Wie das gelingt, zeigen wir in diesem Beitrag.

Weiterlesen

Kombinationsfeld mit Extraeinträgen

Normalerweise enthalten Kombinationsfelder nur die Einträge einer Tabelle oder Abfrage als Datensatzherkunft. Manchmal wollen Sie dem Benutzer aber mit dem Kombinationsfeld noch mehr Funktionen bieten. Zum Beispiel wollen Sie vielleicht den Text anzeigen, damit der Benutzer sieht, dass hier eine Auswahl vorzunehmen ist oder Sie möchten dem Benutzer mit einem Eintrag wie die Möglichkeit geben, direkt über die Auswahl dieses Eintrags ein Detailformular zur Eingabe eines neuen Datensatzes zu öffnen. Dieser Beitrag zeigt, wie das funktioniert und welche Herausforderungen es gibt, wenn das Kombinationsfeld sonst noch keine Daten anzeigt.

Weiterlesen

Kopier- und Löschreihenfolge in MySQL

Im Beitrag “Kopier- und Löschreihenfolge für Tabellen” (www.access-im-unternehmen.de/926) haben wir ermittelt, wie wir die richtige Reihenfolge für das Löschen von Tabellen und das Kopieren von Tabelleninhalten von einer Datenbank in die nächste ermitteln. Wenn Sie die Reihenfolge nicht beachten, kann es nämlich sein, dass Datensätze wegen Fremdschlüsselverletzungen nicht gelöscht und auch nicht kopiert werden können. Im vorliegenden Beitrag zeigen wir, wie Sie die vorgestellte Lösung für das Löschen und Kopieren von Tabellen in MySQL-Datenbanken nutzen können.

Weiterlesen

Von Version zu Version

Neulich wollte ich meine Shopsoftware aktualisieren. Allerdings ging dies nicht mit den vom Hersteller dafür bereitgestellten Plug-In – zumindest nicht mit allen Daten, die ich von der alten in die neue Version überführen wollte. Also musste ich manuell ermitteln, welche Daten der alten Version benötigt werden, damit die neue Version läuft. Damit erhielt ich recht schnell eine lauffähige Version des neuen Systems. Allerdings kam mir dann etwas dazwischen, wodurch zum alten, noch aktiven System wieder neue Kunden und Bestellungen hinzukamen – die Arbeit war also umsonst. Um das Übertragen der Daten beim nächsten Mal einfacher zu gestalten, wollte ich nun das alte und das neue Datenmodell nun automatisch analysieren und die SQL-Befehle erstellen lassen, um diese danach ebenfalls automatisch ausführen zu können. Wie das gelingt, zeigt der vorliegende Beitrag.

Weiterlesen

Ticketsystem, Teil V

In den vorherigen Teilen dieser Beitragsreihe haben wir den Aufbau einiger Funktionen eines Ticketsystems beschrieben. Es fehlt noch der letzte Feinschliff: Wir wollen die erneuten Antworten von Kunden auf unsere als Antwort versendeten E-Mails automatisch in die Ticketverwaltung aufnehmen. Bevor wir das im nächsten Teil erledigen können, haben wir noch einige Feinheiten ergänzt und werfen außerdem noch einmal einen zusammenfassenden Blick über die bisher programmierten Funktionen und die Inbetriebnahme der Ticketverwaltung inklusive der Einrichtung in Outlook. Außerdem fügen wir noch einen Dialog zur Verwaltung der Optionen der Lösung hinzu.

Weiterlesen

Autocomplete in Textfeldern

Autocomplete kennen Sie vermutlich von Kombinationsfeldern. Hier können Sie einen oder mehrere Buchstaben eingeben und das Kombinationsfeld zeigt gleich den nächsten Eintrag der Datensatzherkunft an, der mit diesen Anfangsbuchstaben beginnt. Dieses Verhalten wollen wir auch gern für Textfelder programmieren. Dazu starten wir mit einer etwas einfacheren Variante, die Sie vielleicht vom VBA-Editor kennen: Wenn Sie dort beginnen, einen Objekt- oder Variablennamen zu schreiben, können Sie mit der Tastenkombination Strg + Leertaste dafür sorgen, dass IntelliSense aktiviert wird und passende Einträge anzeigt. Wir wollen dafür sorgen, dass an dieser Stelle einfach der erste passende Eintrag erscheint – wenn wir eine Liste der verfügbaren Einträge wollten, könnten wir ja direkt ein Kombinationsfeld verwenden.

Weiterlesen

Datenblattfunktionen einschränken

Die Datenblattansicht von Access bietet eine ganze Reihe von Funktionen wie das Sortieren nach den verschiedenen Feldern, das Filtern nach beliebigen Kriterien, das Anordnen von Spalten oder auch das Ein- und Ausblenden einzelner Felder. Manchmal möchten Sie aber vielleicht gar nicht, dass der Benutzer etwas am Design des Datenblatts ändert. Das ist etwa der Fall bei der Lösung aus dem Beitrag Datenblatt: Reihenfolge mehrerer Einträge ändern, wo die Datensätze immer nach einem Feld zur Festlegung der Reihenfolge angezeigt werden sollen. Der vorliegende Beitrag zeigt, wie Sie Möglichkeiten für den Benutzer einschränken.

Weiterlesen

Tabellen vor unerlaubtem Zugriff schützen

In Ausgabe 3/2019 haben wir einige Elemente vorgestellt, die den Zugriff auf die Daten einer Datenbank einschränken sollen – zum Beispiel eine einfache Benutzerverwaltung und die Möglichkeit, den Zugriff auf Tabellen per Datenmakro einzuschränken. Im vorliegenden Beitrag wollen wir zeigen, wie Sie diese Techniken abrunden und den direkten Zugriff des Benutzers auf die Tabellen der Datenbank endgültig verhindern. Dazu exportieren wir diese in eine Backend-Datenbank, auf die wir diesmal nicht wie gewohnt per Verknüpfung zugreifen – sondern ausschließlich per VBA. Das hat den Vorteil, dass wir das Backend mit einem Kennwort versehen können, das nur im Code des Frontends zum Einsatz kommt – und diesen können wir durch Umwandlung in eine .mde- beziehungsweise .accde-Datenbank vor den Augen des Benutzers verbergen.

Weiterlesen

Listenfeld: Reihenfolge mehrerer Einträge ändern

Wir haben bereits in mehreren Beiträgen beschrieben, wie Sie die individuelle Reihenfolge von Elementen einer Tabelle über den Inhalt eines Feldes etwa namens “ReihenfolgeID” einstellen können – zum Beispiel in Listenfeldern oder Unterformularen in der Datenblattansicht. Dort haben wir die Reihenfolge dann durch Markieren der Einträge und anschließendes Betätigen etwa von Schaltflächen mit Beschriftungen wie “Ganz nach oben”, “Nach oben”, “Nach unten” oder “Ganz nach unten” geändert. Im vorliegenden Beitrag schauen wir uns nun an, wie wir im Listenfeld die Reihenfolge für mehrere Einträge gleichzeitig ändern können.

Weiterlesen