Neues in Access
Mit der Access-Version aus Office 365 gibt es keine größeren Updates mehr, wie es früher der Fall war, sondern Microsoft schickt Neuerungen unbemerkt an den Endbenutzer. Dieser Beitrag zeigt die jüngsten Aktualisierungen, die sich unbemerkt von der Öffentlichkeit in Ihre Access-Installation geschlichen haben. Die Neuerungen betreffen vor allem das Beziehungen-Fenster, aber auch die SQL-Ansicht von Abfragen sowie den Abfrage-Entwurf.
Office 365-Updates im Griff
Wenn Sie Office 365 verwenden, kommen Updates automatisch zu Ihnen. Für Access bedeutet das auch, dass auch einmal Neuerungen ohne »großes« Update wie früher auf im System landen. Der Nachteil ist allerdings, dass Sie üblicherweise nichts von den Neuerungen erfahren. Dieser Beitrag zeigt, wie Sie beeinflussen können, ob neue Versionen auf dem Rechner landen, wo Sie Informationen über neue Features erhalten und wie Sie, wenn eine neue Version mal Fehler mit sich bringt, wieder zur vorherigen Version wechseln können.
Numerische Autowerte einstellen
Autowertfelder verwendet man, um sich keine Sorgen mehr um die automatisch vergebenen Werte für Primärschlüsselfelder machen zu müssen. Manchmal geraten die Werte dieser Felder allerdings aus dem Takt oder Sie möchten selbst festlegen, welchen Wert der nächste Datensatz erhalten soll. Dieser Beitrag zeigt, wie Sie die Autowerte in Ihren Tabellen im Griff haben.
Autowertfelder: Long durch GUID ersetzen
In den meisten Fällen ist die Wahl des Datentyps »Long« für ein Autowertfeld sinnvoll. Da es die Standardeinstellung ist, denkt man vielleicht gar nicht über alternative Datentypen nach. Manchmal kann es jedoch Vorteile haben, den Datentyp GUID zu wählen. Dann landen keine durchnummerierten Zahlen im Primärschlüsselfeld, sondern Zeichenketten im Format einer GUID. Die Nutzung der GUID ist vor allem dann anzuraten, wenn mehrere Datenbanken parallel existieren, deren Daten gelegentlich zusammengeführt werden. In diesem Fall kann man die Primärschlüsselwerte einfach weiterverwenden und muss sich nicht darum kümmern, dass der gleiche Primärschlüsselwert in mehreren Datenbanken vorkommt und angepasst werden muss.
Das AutoKeys-Makro
Makros sind unter Microsoft Access eine stiefmütterlich behandelte Objektart. In der Tat ist die Programmierung einer Datenbank mit VBA wesentlich flexibler und mächtiger. Allerdings gibt es Anwendungszwecke, die sich mit VBA nicht abdecken lassen. Hier kann man auf zwei spezielle Makros zugreifen: Das AutoExec-Makro wird beim Start einer Anwendung aufgerufen und kann zum Anstoßen von Aktionen verwendet werden, die beim Start benötigt werden. Das AutoKeys-Makro nimmt die Definition von Tastenkombinationen auf, die während des Betriebs der jeweiligen Access-Anwendung zur Verfügung stehen. Das letztere Makro schauen wir uns in diesem Beitrag im Detail an.
Tastenkombinationen mit AutoHotKeys
Access bietet einige Tastenkombinationen, mit denen sich die wichtigsten Aufgaben schnell erledigen lassen. Manche Tastenkombination wurde aber über die Jahre geändert – zum Beispiel können Sie seit einigen Access-Versionen nicht mehr mit der Tastenkombination Strg + Tab zwischen den aktuell geöffneten Access-Objekten wechseln. Stattdessen erledigen Sie diese Aufgabe nun mit der Tastenkombination Strg + F6. Eine Kombination, für nur für Menschen mit halbwegs großen Händen mit einer Hand greifbar ist. Da man während der Entwicklung gern einmal von einem Objekt zum nächsten wechselt und Strg + Tab sehr gut dafür geeignet war, wollen wir diesen Zustand wiederherstellen. Wie das gelingt und warum die Bordmittel von Access dafür nicht ausreichen, zeigt dieser Beitrag.
.accdb läuft, .accde aber nicht
Haben Sie das schon einmal erlebt? Sie haben Ihre Anwendung fertig programmiert und alles läuft einwandfrei. Sie müssen nur noch die Kompilierung in eine .accde-Datenbank vornehmen, damit der Kunde keinen Zugriff auf den Quellcode hat. Auch das gelingt ohne Probleme. Kaum starten Sie die .accde-Datenbank, geht jedoch plötzlich nichts mehr: Es funktionieren einfach keine Ereignisprozeduren mehr, und falls vorhanden, meckert auch das Ribbon, dass es seine Callback-Funktionen nicht mehr ausführen kann. Was ist hier geschehen und wie lösen wir das Problem? Das zeigen wir in diesem Artikel.
SQL Server-Security, Teil 4: Schutz mit Datenbankrollen
In Teil 4 dieser Beitragsreihe wurden die Zugriffsrechte der Anwender auf die Datenbank begrenzt. In der Datenbank jedoch gibt es für die Anwender keine Grenzen. Durch die Zuordnung zur Datenbankrolle db_owner besitzen sie dort administrative Rechte. Dies erlaubt ihnen u.a. das Anlegen und Löschen von Tabellen sowie das Lesen und Ändern aller Daten. Wie Sie die Rechte mit Hilfe der Datenbankrollen weiter eingrenzen, lesen Sie in diesem Beitrag.
Webcam-Bilder in Datenbank speichern
Die Bilder einer Webcam kann man üblicherweise auf dem Rechner speichern, auf dem man diese erstellt hat. Gegebenenfalls geschieht das auch automatisch – so zum Beispiel mit der Kamera-App von Windows. Ein Leser fragte, ob sich das Aufnehmen von Bildern auch so steuern lässt, dass man die neuen Fotos direkt in einer Datenbank weiterverwenden kann – durch Speichern des Bildes oder des Speicherpfades in der Datenbank und das anschließende Anzeigen des Bildes direkt in einem Formular der Datenbank. Eine direkte Steuerung via VBA haben wir nicht realisiert, aber einen Workaround, der diese Aufgabe ebenso gut erfüllt.
Daten-Updates ausliefern
Wenn Sie eine Anwendung bereitstellen wollen, die bereits Daten enthält und deren Daten sowohl von Ihnen als auch vom Benutzer der Anwendung erweitert werden sollen, müssen Sie einige Dinge beachten. Wir gehen zur Vereinfachung davon aus, dass nur neue Daten hinzukommen und keine vorhandenen Daten geändert werden – das würde die Aufgabe noch schwieriger gestalten. Als Beispiel soll eine Datenbank mit Produkten dienen, die sowohl aus einem Basiskatalog gefüttert werden, der gelegentlich erweitert wird, als auch vom Benutzer der Anwendung. Wie Sie das überhaupt machen, welche Probleme das mit sich bringt und wie Sie diese lösen, zeigen wir in diesem Beitrag.
XRechnung, Teil 1: Rechnungen generieren
XRechnung ist ein Standard für das Einreichen von Rechnungen bei öffentlichen Aufträgen. Sinn und Zweck dieses Standards ist, das Übermitteln von Rechnungsdaten auf eine Weise zu erlauben, dass diese automatisiert eingelesen und verarbeitet werden können. Wie das X in XRechnung vermuten lässt, steckt dahinter ein Austausch der Daten im XML-Format. Die Vorlage für XRechnung liefert die europäische Norm EN 16931. Wie die Daten strukturiert werden müssen, haben wir dem Dokument »Spezifikation XRechnung Standard und Extension« entnommen, das öffentlich einsehbar ist. Als Grundlage für die Zusammenstellung der XRechnung verwenden wir ein herkömmliches Datenmodell einer Bestell- oder Rechnungsverwaltung. In diesem ersten Teil zeigen wir, wie die Daten aus den Tabellen der Beispieldatenbank in ein XRechnung-kompatibles XML-Dokument umgewandelt werden und wie Sie dieses validieren können.