SQL Server: Sicherheit mit Schema

Die älteren SQL Server-Versionen haben einen Nachteil: Sie benötigen hier einen Benutzer, dem eine neu erstellte Datenbank gehört. Genauso gibt es auch für alle weiteren Objekte wie Tabellen, Sichten, gespeicherte Prozeduren und so weiter einen Besitzer – nämlich den Benutzer, der das Objekt erstellt hat. Meist legt man diese Elemente im Kontext eines Windows-Benutzers an, was zum Beispiel dazu führt, dass Sie diesen Benutzer nicht einfach löschen können, ohne zuvor alle Elemente dieses Benutzers an einen anderen Benutzer übertragen zu haben. Aus diesem Grund hat Microsoft mit SQL Server 2005 den Typ namens „Schema“ eingeführt. Diesem werden nun nicht nur neu erstellte Objekte zugeordnet, sondern Sie können auch mehrere Schemas pro Datenbank verwenden, um beispielsweise Elemente nach verschiedenen Gruppen zu sortieren.

Weiterlesen

Berechtigungen für Access-Objekte per SQL Server II: Formulare

Im Beitrag „Berechtigungen für Access-Objekte per SQL Server I: Tabellen“ haben wir ein Datenmodell entwickelt für die Verwaltung der Berechtigungen verschiedener Benutzergruppen auf die Formulare, Berichte und Steuer-elemente einer Access-Anwendung – gesteuert über die jeweilige Anmeldung an der SQL Server-Datenbank. Im zweiten Teil dieser Beitragsreihe verknüpfen wir die Access-Anwendung mit diesen Tabellen und erstellen die Formulare, die zur Bearbeitung der für die Berechtigungsverwaltung notwendigen Tabellen erforderlich sind.

Weiterlesen

Spalten zweier Datenblätter synchronisieren

Im Beitrag „Neue Datensätze oben anfügen“ haben wir uns angesehen, wie Sie ein Unterformular in der Datenblattansicht, das nur einen leeren, neuen Datensatz anzeigt, über einem normalen Datenblatt mit den Daten der gleichen Tabelle platzieren. Damit erhält der Benutzer die Möglichkeit, einen Datensatz oben einzufügen und nicht, wie sonst üblich, unten. Das Problem hierbei ist, dass der Benutzer immer noch die Spalten des oberen Formulars anders anordnen oder ihre Breite ändern kann. Das wirkt sich nicht automatisch auf die Spalten des darunter positionierten Formulars aus. Also müssen wir noch ein wenig Arbeit investieren, um dieses Verhalten zu dieser Lösung hinzuzufügen.

Weiterlesen

Mehrere Felder gleichzeitig durchsuchen

Normalerweise legen ein Textfeld an, in das Sie einen Suchbegriff eingeben und die Daten dann in einem oder mehreren Feldern nach diesem Suchbegriff durchsuchen. Oder Sie haben mehrere Suchfelder etwa für Vorname, Nachname et cetera. Dieser Beitrag stellt ein Suchsteuerelement vor, mit dem Sie gezielt nach den Inhalten verschiedener Felder gleichzeitig suchen können. Dabei gibt es mehrere Vorlagen, die vorab festgelegt werden und die der Benutzer dann einstellt, um die Suchbegriffe einzugeben.

Weiterlesen

Menüs für das COM-Add-In für den VBA-Editor

Im Beitrag „COM-Add-In für den VBA-Editor“ haben wir uns zunächst darum gekümmert, überhaupt eine COM-DLL zu programmieren und diese so in die Registry einzutragen, dass sie beim Starten des VBA-Editors geladen wird und die dort angelegten Ereignisprozeduren ausgelöst wurden. Damit sind wir noch lange nicht fertig. Im vorliegenden Artikel schauen wir uns an, wie Sie dem VBA-Editor Menüeinträge für den Aufruf der im COM-Add-In enthaltenen Funktionen hinzufügen – und zwar für die Menüleiste, die Symbolleiste sowie für Kontextmenüs.

Weiterlesen

COM-Add-In für den VBA-Editor programmieren

Der VBA-Editor hinkt Visual Studio um Lichtjahre hinterher. Doch es gibt gute Nachrichten: Mit einem COM-Add-In auf Basis von .NET können Sie auch den VBA-Editor noch um Funktionen erweitern. Das zeigen ja auch andere Werkzeugkästen wie etwa die MZ-Tools. Wir wollen in diesem Artikel einmal zeigen, wie Sie ein COM-Add-In in Visual Studio programmieren, das dann beim Öffnen des VBA-Editors zu seiner Erweiterung zur Verfügung steht.

Weiterlesen

1:n-Beziehung als Restriktion für Feldwerte

Normalerweise verwenden Sie 1:n-Beziehungen, um die Datensätze zweier Tabellen zu verknüpfen und so Kombinationen aus diesen Datensätzen zu ermöglichen. Oder Sie nutzen die Beziehung für die Verknüpfung mit einer Lookup-Tabelle, welche die Werte für ein Feld liefert. Es geht aber noch anders: Wir wäre es, wenn Sie etwa für ein Feld, dass nur bestimmte Zahlenwerte annehmen können soll, auch eine per 1:n-Beziehung verknüpfte Tabelle hinterlegen Dieser Beitrag zeigt, welchen praktischen Zweck dies hat und wie Sie dies umsetzen.

Weiterlesen

HTML-Kreuztabelle 3: Neue Zeilen und Spalten

In den ersten beiden Teilen der Beitragsreihe haben wir gezeigt, wie Sie die Daten einer Tabelle in Form einer Kreuztabelle ausgeben können. Das ist natürlich auch per Kreuztabellenabfrage möglich, aber wir haben in diesem Fall das Webbrowser-Steuerelement mit einer entsprechenden HTML-Seite verwendet. Der Hintergrund ist, dass wir so Funktionen zum direkten Bearbeiten der Einträge hinzufügen können – vorausgesetzt, dass die Kreuztabelle nur die Werte einer Kombination anzeigt und nicht etwa Domänenfunktionen wie Summen oder Mittelwerte. Wir wollen also die bereits vorhandene Darstellung noch um Funktionen zum Bearbeiten sowie zum Hinzufügen neuer Spalten oder Zeilen erweitern.

Weiterlesen

Kombinationsfeld per Taste steuern

Kombinationsfelder enthalten viele Einträge, die Sie durch das Aufklappen des Kombinationsfeldes anzeigen und per Mausklick auswählen können. Wenn Sie mit der Tastatur arbeiten, müssen Sie das Kombinationsfeld erst mit der Taste F4 öffnen und dann mit der Nach oben- oder der Nach unten-Taste den gewünschten Eintrag auswählen, den Sie dann durch Verlassen des Steuerelements bestätigen. Das geht auch einfacher, nämlich mit den beiden Tasten „Nach oben“ und „Nach unten“. Es bedarf allerdings einiger Zeilen VBA-Code, die wir in diesem Beitrag vorstellen.

Weiterlesen

Gespeicherte Prozeduren mit Pass-Through-Abfragen

Für den Zugriff auf die Daten einer SQL Server-Datenbank gibt es mehrere Methoden. Die erste ist das Einbinden der Tabellen per ODBC. Sie greifen dann – oberflächlich betrachtet – genau wie auf lokale Daten zu. Die andere, performantere und auch für den Mehrbenutzerbetrieb effizientere Variante, ist der Zugriff über Pass-Through-Abfragen auf gespeicherte Prozeduren. Gespeicherte Prozeduren sind Skripte, die Anweisungen auf dem SQL Server ausgeben und die ihre Ergebnisse, also zum Beispiel gefundene Datensätze, zurückgeben können. Zugriff auf solche gespeicherten Prozeduren erhalten Sie über die Nutzung sogenannter Pass-Through-Abfragen. Wie Sie die gespeicherte Abfragen und Pass-Through-Abfragen kombinieren, um Daten vom SQL Server in Ihre Access-Datenbank zu bekommen, zeigt dieser Beitrag.

Weiterlesen