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

UNION-Abfragen

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

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

Sichere Filterausdrücke

Filterausdrücke können schnell gefährlich werden, zumindest wenn Sie nicht aufpassen. Dafür sorgt die so genannte SQL-Injection, bei der davon ausgegangen wird, dass der Benutzer einen Ausdruck in die Benutzeroberfläche eingibt, die dann als Teil eines SQL-Ausdrucks verwendet wird und Schaden anrichten könnte. Dieser Beitrag erläutert, was SQL-Injection eigentlich ist und wie Sie sich dagegen wappnen können.

Weiterlesen

Abfrageverwalter

Geschieht Ihnen das auch regelmäßig Sie wollen mal eben per Abfrage ein paar Daten filtern, sortieren oder zusammenführen, aber die Abfrage nach dieser Anwendung gleich wieder löschen. Dummerweise vergessen Sie letzteres und irgendwann ist das Datenbankfenster voller gespeicherter Abfragen. Oder Sie benötigen gleichzeitig die Ergebnisse verschiedener Abfragen, finden die vielen geöffneten Fenster im Access-Hauptfenster aber unübersichtlich. Für beides liefert unser Abfrageverwalter die Lösung: Sie können damit mal eben eine Abfrage erstellen, ohne dass diese dauerhaft im Navigationsbereich verbleibt. Oder Sie zeigen die Ergebnisse mehrerer Abfragen übersichtlich im Registersteuerelement eines einzigen Formulars an.

Weiterlesen

Parameterabfragen unter der Lupe

Abfragen lassen sich auf unterschiedlichste Weise mit den Vergleichswerten für ihre Kriterien bestücken – beispielsweise, indem man einfach den gewünschten SQL-Ausdruck per VBA zusammensetzt. Es gelingt jedoch unter Einsatz von Abfrageparametern: Sie fügen in eckige Klammern eingefasste Bezeichnungen in den Abfrageentwurf ein und füllen diese dann entweder per eingebauter Inputbox oder per VBA. Dieser Beitrag stellt alle wichtigen Techniken rund um den Einsatz von Parameterabfragen vor.

Weiterlesen

Aktionsabfragen statt Schleifen

änderungen an den Daten in den Tabellen einer Datenbank kann man auf verschiedenste Arten durchführen – zum Beispiel über die Benutzeroberfläche. Gelegentlich werden Sie jedoch auch Daten per VBA ändern wollen. In diesem Falle gibt es eine ganze Reihe von Varianten, die normalerweise mit den Methoden der DAO-Bibliotheken abgebildet werden: Das öffnen eines Recordsets und ändern der enthaltenen Daten mit AddNew/Edit und Update, das Zusammenstellen einer SQL-Aktionsabfrage, die dann mit der Execute-Methode des Database-Objekts ausgeführt wird, oder der Einsatz gespeicherter Aktionsabfragen, die man mit der Execute-Methode des QueryDef-Objekts startet. Wir schauen uns die verschiedenen Varianten an und optimieren diese.

Weiterlesen

Abfragen zur ABC-Analyse

Mit einer ABC-Analyse teilen Sie verschiedene Objekte in die drei Klassen A, B und C auf. Bei diesen Objekten kann es sich beispielsweise um Kunden, Kundengruppen, Produkte oder auch Produktgruppen handeln. Im Mittelpunkt steht jedoch meist der Umsatz des Objekts beziehungsweise der Gruppe von Objekten. Die Aufteilung erfolgt nach Wertanteilen der ermittelten Werte am Gesamtwert. Wie Sie dies mit Access anstellen, zeigt der vorliegende Beitrag.

Weiterlesen

Kreuztabellen-Abfragen mit Kriterien

Kreuztabellenabfragen erlauben die Gruppierung von Daten nach zwei Kriterien, die als Spalten- und Zeilenköpfe dargestellt werden. Solange Sie eine solche Abfrage manuell und statisch erstellen, können Sie diese mit aussagekräftigen Spaltenüberschriften versehen. Sobald die Daten jedoch etwa per Parameter gefiltert werden sollen, wird es kompliziert, denn auch die Spaltenüberschriften müssen dann dynamisch angepasst werden. Dieser Beitrag zeigt Möglichkeiten, dieses Problem zu lösen.

Weiterlesen

Kreuztabellenabfragen erstellen

Kreuztabellenabfragen nehmen in der Reihe der Abfragen eine ganz besondere Position ein. Her-kömmliche Abfragen sehen in der Datenblattansicht wie ganz normale Tabellen aus – sie besitzen Feldnamen als Spaltenüberschriften und jeder Datensatz nimmt eine Zeile ein. Kreuztabellenab-fragen hingegen dienen zur Gruppierung und Sortierung von Daten sowie zur Anwendung von Funktionen wie etwa der Berechnung von Summen, Durchschnittswerten oder Anzahlen. Nicht, dass normale Abfragen das nicht auch könnten: Aber sie schaffen das lediglich in einer Dimension. Kreuztabellenabfragen gruppieren Daten nach zwei unterschiedlichen Kriterien und verwenden diese als Spalten- und Zeilenköpfe für die gewünschten, in einem Raster angeordneten Daten.

Weiterlesen