Lösch- und Kopierreihenfolge für Tabellen

Bei der einen oder anderen Gelegenheit werden Sie die Daten von Tabellen von einer Datenbank zur nächsten kopieren wollen oder einfach den Inhalt aller Tabellen löschen. Wenn die Tabellen mit referenziellen Beziehungen versehen sind, ist sowohl das Kopieren als auch das Löschen der enthaltenen Daten nicht trivial: Sie müssen nämlich in beiden Fällen in einer bestimmten Reihenfolge vorgehen. Beim Löschen müssen Sie erst alle verknüpften Daten aus der Detailtabelle einer Beziehung entfernen, bevor Sie die Daten der Mastertabelle löschen können. Beim Kopieren sind hingegen erst die Daten in den Mastertabellen einzufügen, bevor Sie die Detailtabellen samt Fremdschlüsselfeldinhalt füllen können.

Weiterlesen

Geänderte Daten archivieren

Das Ändern von Daten ist in manchen Fällen an der Tagesordnung – zum Beispiel bei Kundendaten. Wenn Sie in einer Datenbank Kunden verwalten, die nicht nur für einen einzigen Auftrag oder eine einzige Bestellung angelegt werden, sondern mit denen Sie wiederkehrend geschäftlichen Kontakt haben, müssen Sie die Adressdaten auf dem aktuellen Stand halten. Kein Problem: Die entsprechenden Felder lassen sich ja schnell mal überschreiben. Das Problem ist nur, dass hier auch Fehler geschehen. Wenn Sie beispielsweise beim falschen Michael Müller die Lieferadresse ändern, freut sich ein Michael Müller über eine Lieferung, aber der andere, der nichts bestellt hat, wird die Rechnung wohl nicht bezahlen. Und wenn sich solche Fehler nur schwer verhindern lassen, so sollen Sie zumindest die Adressdaten schnell wiederherstellen können …

Weiterlesen

Exklusives Öffnen von Datenbanken

Access bietet die Mögichkeit, Datenbanken in einem exklusiven Modus zu öffnen. Dieser Modus ist vor allem für bestimmte Operationen wie etwa das Komprimieren einer Datenbankdatei nötig. Rund um das exklusive Öffnen von Datenbanken gibt es jedoch noch eine Reihe weiterer wichtiger Informationen, die Sie in diesem Beitrag erhalten. Dazu gehören zwei VBA-Funktionen, mit denen Sie zum Beispiel prüfen können, ob eine Datenbank exklusiv geöffnet ist oder ob Sie diese im exklusiven Modus öffnen können.

Weiterlesen

Stücklisten, Teil I

Stücklisten dienen dazu, die Einzelteile eines Objekts strukturiert darzustellen. Strukturiert bedeutet dabei, dass die Einzelteile jeweils zu Baugruppen zusammengefasst werden. Ein Objekt besteht also aus Baugruppen und/oder Einzelteilen, wobei jede Baugruppe wieder aus Baugruppen und/oder Einzelteilen besteht – bis am Ende jede Baugruppe in ihre Einzelteile aufgelöst ist. Einzelteile sind die kleinsten Einheiten in der Stückliste, sie können nicht weiter aufgeteilt werden.Dieser Beitrag soll zeigen, wie Sie Stücklisten mit Access verwalten. Dabei spielt das TreeView-Steuerelement eine große Rolle.

Weiterlesen

Textdateien vergleichen

Als ich bei verschiedenen Projekten die gleichen Module und Formulare einsetzte und diese unabhängig voneinander anpasste, hatte ich plötzlich verschiedene Versionen der Objekte. Das war nicht beabsichtigt, die Objekte sollten möglichst überall gleich aussehen. Um keinen der Entwicklungsschritte zu verlieren, musste ich den Code der Objekte vergleichen. Dummerweise bietet Access keine eingebaute Funktion für so etwas, also musste ich mich selbst an die Arbeit machen und eine entsprechend Lösung programmieren. Diese sollte schlicht und einfach zwei Textdateien Zeile für Zeile miteinander vergleichen und mir die unterschiedlichen Zeilen anzeigen.

Weiterlesen

Objekt- und Feldnamen per Kontextmenü

Kennen Sie das auch Sie konzentrieren sich gerade mal wieder voll auf die Programmierung einer Prozedur und wollen eine SQL-Anweisung zusammenstellen. Dummerweise fällt Ihnen der Name der Tabelle und/oder des Feldes nicht ein, das Sie dort verwenden möchten. Also wechseln Sie zum Access-Fenster, ermitteln dort den gesuchten Namen und kehren wieder zum VBA-Editor zurück. Dort ergänzen Sie dann die gesuchte Anweisung. Damit ist jetzt Schluss: Dieser Beitrag stellt nämlich eine einfache Lösung vor, mit der Sie die Namen aller Tabellen, Abfragen und Felder ganz einfach per Kontextmenü nachschlagen und zum Code hinzufügen können.

Weiterlesen

Frontend/Backend mit Kennwortschutz

Wenn Sie eine Access-Datenbank mit einem Kennwortschutz versehen, kann der Benutzer ohne Kennwort nicht darauf zugreifen (außer mit gegebenenfalls vorhandener krimineller Energie). Wie aber sieht es aus, wenn Sie mit mehreren Benutzern auf die Daten einer Anwendung zugreifen wollen und diese deshalb in Frontend und Backend aufteilen wollen Wir zeigen, welche Sicherheitslücken dadurch entstehen können und wie Sie diese – allerdings nicht ohne Aufwand – beheben können.

Weiterlesen

TreeView: Neue Elemente anlegen

Das Anlegen neuer Elemente in einem TreeView-Steuerelement, das die Daten aus ein oder mehreren Tabellen anzeigt, ist nicht immer trivial. Soll das Anlegen über ein Detailformular erfolgen und der Eintrag dann zum TreeView hinzugefügt werden Oder reicht vielleicht die Bezeichnung des neuen Elements zunächst aus, um dieses zum TreeView hinzuzufügen – dann wäre eine InputBox oder die direkte Angabe im TreeView eine Lösung. Dieser Beitrag zeigt verschiedene Möglichkeiten, um neue Elemente anzulegen.

Weiterlesen

Steuerelemente an Datenblatt anpassen

Datenblätter sind sehr flexibel, wenn es um die Anzeige tabellarischer Daten geht. Sie können die Daten damit sortieren und filtern und die Breite und Sortierung der Spalten anpassen. Gelegentlich platziert man jedoch um ein Unterformular mit einem Datenblatt herum noch weitere Elemente wie etwa Schaltflächen oder individuelle Steuerelemente etwa zur Eingabe von Suchbegriffen. Diese sollen sich, wenn der Benutzer die Spalten ändert, natürlich anpassen. Wie dies gelingt, zeigt der vorliegende Beitrag.

Weiterlesen

Kombinationsfeld mit Bearbeitungsfunktion

Kombinationsfelder dienen in der Regel der Auswahl eines Eintrags aus einer Lookup-Tabelle. In manchen Fällen programmiert man noch Funktionen hinzu, mit denen ein noch nicht vorhandener Eintrag in der zugrunde liegenden Tabelle gespeichert werden kann. Wir gehen noch einen Schritt weiter und erlauben dem Benutzer, Einträge zu löschen oder zu bearbeiten. Das Ganze natürlich unter Berücksichtigung dessen, dass bereits verwendete Einträge nicht gelöscht werden können.

Weiterlesen