Abrufen von Datensätzen mithilfe von Access SQL

Die einfachste und am häufigsten verwendete SQL-Anweisung ist die SELECT-Anweisung . SELECT -Anweisungen bilden das Grundgerüst aller SQL-Anweisungen und werden auch als Auswahlabfragen bezeichnet. Mit der SELECT -Anweisung rufen Sie Daten aus Datenbanktabellen ab, und die Ergebnisse werden im Allgemeinen in Form von Datensatzgruppen (oder Zeilen) zurückgegeben, die aus einer beliebigen Anzahl von Feldern (oder Spalten) bestehen können. Sie müssen die FROM -Klausel verwenden, um anzugeben, aus welchen Tabellen Daten ausgewählt werden sollen. Die Grundstruktur einer SELECT -Anweisung lautet folgendermaßen:

SELECT field list  
    FROM table list

Damit alle Felder einer Tabelle ausgewählt werden, verwenden Sie ein Sternchen (*). Mit der folgenden Anweisung werden beispielsweise alle Felder und alle Datensätze aus der Tabelle "Customers" (Kunden) ausgewählt:

SELECT * 
    FROM tblCustomers 

Damit die von der Abfrage abgerufenen Felder eingeschränkt werden, verwenden Sie stattdessen einfach die Feldnamen. Beispiel:

SELECT [Last Name], Phone 
    FROM tblCustomers 

Um einen anderen Namen für ein Feld im Resultset festzulegen, verwenden Sie das AS-Schlüsselwort , um einen Alias für dieses Feld einzurichten.

SELECT CustomerID AS [Customer Number] 
    FROM tblCustomers 

Einschränken des Resultsets

In den meisten Fällen möchten Sie nicht alle Datensätze aus einer Tabelle abrufen. Sie möchten nur eine Teilmenge dieser Datensätze basierend auf einigen qualifizierenden Kriterien verwenden. Um eine SELECT-Anweisung zu qualifizieren, müssen Sie eine WHERE-Klausel verwenden, mit der Sie genau angeben können, welche Datensätze Sie abrufen möchten.

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 

Beachten Sie den CustomerID = 1 Teil der WHERE-Klausel . Eine WHERE-Klausel kann bis zu 40 solcher Ausdrücke enthalten, und sie können mit den logischen Operatoren Und oder verknüpft werden. Wenn Sie mehr als einen Ausdruck verwenden, können Sie Datensätze im Resultset weiter herausfiltern.

SELECT * 
    FROM tblInvoices 
    WHERE CustomerID = 1 AND InvoiceDate > #01/01/98# 

Die Datumszeichenfolge ist in Nummernzeichen (#) eingeschlossen. Wenn Sie eine reguläre Zeichenfolge in einem Ausdruck verwenden, müssen Sie die Zeichenfolge in Hochkommas (') einschließen. Beispiel:

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] = 'White' 

Wenn Sie den gesamten Zeichenfolgenwert nicht kennen, können Sie Mit dem Like-Operator Wildcardzeichen verwenden.

SELECT * 
    FROM tblCustomers 
    WHERE [Last Name] LIKE 'W*' 

Sie können aus einer Reihe von Platzhalterzeichen auswählen. In der folgenden Tabelle sind die verschiedenen Platzhalterzeichen samt Verwendungsmöglichkeiten aufgeführt.

Platzhalterzeichen Description
* Null oder mehr Zeichen
? Jedes einzelne Zeichen
# Jede einzelne Ziffer (0 -9)
[ charlist ] Jedes einzelne unter Zeichenliste angegebene Zeichen
[! charlist ] Jedes einzelne Zeichen, das nicht unter Zeichenliste angegeben ist

Sortieren des Resultsets

Verwenden Sie die optionale ORDER BY-Klausel , um eine bestimmte Sortierreihenfolge für ein oder mehrere Felder im Resultset anzugeben. Datensätze können in aufsteigender (ASC) oder absteigender Reihenfolge (DESC) sortiert werden. Aufsteigend ist die Standardeinstellung.

Felder, auf die in der ORDER BY-Klausel verwiesen wird, müssen nicht Teil der Feldliste der SELECT-Anweisung sein, und die Sortierung kann auf Zeichenfolgen-, numerische und Datums-/Uhrzeitwerte angewendet werden. Die ORDER BY -Klausel muss stets am Ende der SELECT -Anweisung eingefügt werden.

SELECT * 
    FROM tblCustomers 
    ORDER BY [Last Name], [First Name] DESC 

Es ist auch möglich, die Feldnummern (Positionen) anstelle von Feldnamen in der ORDER BY-Klausel zu verwenden.

SELECT * 
    FROM tblCustomers 
    ORDER BY 2, 3 DESC 

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.