Flexible Adressen

Das Thema Adressverwaltung kann man auf viele verschiedene Arten lösen. In vielen Fällen reicht eine einfache Tabelle, die eine Adresse speichert. Reden wir über Adressen in einer Kundenverwaltung, kann es auch vorkommen, dass der Kunde unterschiedliche Adressen für Lieferungen und Rechnungen angeben möchte. Solche Daten speichert man entweder in einer einzigen Tabelle je Kunde oder man trägt die Liefer- und Rechnungsadresse in eigene Tabellen ein, die man dann per 1:1-Beziehung mit dem Kundendatensatz verknüpft. Wir gehen noch einen Schritt weiter und wollen mit der hier vorgestellten Lösung die Möglichkeit bieten, nicht nur zwei, sondern beliebig viele Adressen je Kunde anzulegen – die dann flexibel als Rechnung- oder Lieferadresse festgelegt werden können.

Weiterlesen

Verweise per VBA verwalten

Wenn Sie den Umfang der Objekte, Methoden, Eigenschaften und Ereignisse unter VBA erweitern wollen, geht kein Weg am Verweise-Dialog des VBA-Editors zum Hinzufügen neuer Verweise vorbei. Hier legen Sie fest, welche Bibliotheken neben den eingebauten Bibliotheken noch ihre Elemente für die Programmierung im aktuellen VBA-Projekt bereitstellen sollen. In diesem Beitrag werfen wir einen kurzen Blick auf den Verweise-Dialog, aber vor allem schauen wir uns an, wie Sie per VBA auf die enthaltenen Einträge zugreifen und diese verwalten.

Weiterlesen

Datenhistorie-Trigger schnell anlegen

Im Beitrag „Datenhistorie per Trigger“ haben wir gezeigt, welche Anweisungen nötig sind, um eine Archivtabelle anzulegen und der Originaltabelle einen Trigger hinzuzufügen, der beim Ändern oder Löschen eines Datensatzes die vorherige Version in einer Archivtabelle speichert. Im vorliegenden Beitrag wollen wir eine VBA-Prozedur entwickeln, mit der Sie zu einer Tabelle mit einem einfachen Aufruf die Archivtabelle und den Trigger in einem Rutsch anlegen können. Damit sichern Sie Ihre Daten bei Änderungen auch für mehrere Tabellen ganz schnell ab.

Weiterlesen

Datenhistorie per Trigger

Wer seine Access-Tabellen von einem Access-Backend in ein SQL Server-Backend übertragen hat, dürfte zunächst keinen Unterschied beim Zugriff auf die Daten bemerken. Spannend wird es, wenn Sie unter Access jedoch die sogenannten Datenmakros verwendet haben, um automatisch auf Änderungen in den Daten zu reagieren und beispielsweise Kopien geänderter oder gelöschter Datensätze in einer Archivtabelle angelegt haben. Beim Migrieren nach SQL Server werden zwar auch die Archivtabellen erstellt, aber die Datenmakros bleiben außen vor. Damit keine Daten verloren gehen, zeigen wir in diesem Beitrag, wie Sie die Tabellen mit Triggern ausstatten, um die gewünschten Daten zu archivieren.

Weiterlesen

Like, Alike, *, % und die Kompatibilität

Es gibt Dinge, die gehen an einem vorbei, ohne dass man es merkt. Das war bei mir der Fall mit den Thema der Überschrift: Ich arbeite größtenteils mit Access-Datenbanken und weiß, dass dort das Sternchen (*) als Platzhalter für beliebige Zeichen beim Einsatz des Like-Operators zum Einsatz kommt. Und wenn ich mal mit dem SQL Server arbeite, dann weiß ich, dass dort stattdessen das Prozentzeichen gefragt ist (%). Neulich erhielt ich aber eine Datenbank von einem Leser, der sich wunderte, warum eine Lösung bei ihm schlicht nicht arbeitete. Nach einigen Experimenten und einer Internetrecherche war die Lösung gefunden: Der Leser betrieb die Datenbank im SQL-92-Kompatibiltätsmodus, was bedeutet, dass die Platzhalter des SQL Servers in LIKE-Vergleichen zum Einsatz kommen. Was es damit auf sich hat und wie Sie damit umgehen, erfahren Sie im vorliegenden 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

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

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

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

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