SQL-Aggregatfunktionen (Microsoft Jet-SQL)

SQL-Aggregatfunktionen

Durch Verwenden der SQL -Aggregatfunktionen können Sie Wertemengen in verschiedener Hinsicht statistisch auswerten. Sie können diese Funktionen in einer Abfrage und in Aggregatausdrücken in der SQL-Eigenschaft eines QueryDef-Objekts oder beim Erstellen eines Recordset-Objekts auf Basis einer SQL-Abfrage verwenden.

Avg-Funktion

Count-Funktion

First-, Last-Funktionen

Min-, Max-Funktionen

StDev-, StDevP-Funktionen

Sum-Funktion

Var-, VarP-Funktionen


SQL-Ausdrücke

Ein SQL -Ausdruck ist eine Zeichenfolge, aus der eine SQL-Anweisung ganz oder zum Teil besteht. Die FindFirst-Methode in einem Recordset-Objekt verwendet z. B. einen SQL-Ausdruck, der aus den Auswahlkriterien in der WHERE-Klausel einer SQL-Anweisung besteht.

Das Microsoft Jet-Datenbankmodul verwendet den Ausdruck-Interpreter von Microsoft® Visual Basic für Applikationen (VBA), um einfache arithmetische Operationen und Funktionen auszuwerten. Alle Operatoren, die in Microsoft Jet-SQL-Ausdrücken verwendet werden (Between, In und Like), werden durch den Ausdruck-Interpreter von VBA definiert. Außerdem stellt der Ausdruck-Interpreter von VBA über 100 VBA-Funktionen zur Verfügung, die in SQL-Ausdrücken verwendet werden können. Beispielsweise kann eine SQL-Abfrage, die in der SQL-Ansicht der Abfrageentwurfsansicht von Microsoft Access erstellt wurde, diese VBA-Funktionen genauso verwenden wie eine SQL-Abfrage, die in der DAO-Methode OpenRecordset in Code aus Microsoft Visual C++, Microsoft Visual Basic und Microsoft Excel verwendet wurde.


Für SQL reservierte Wörter

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Die folgende Liste enthält alle Wörter, die vom Microsoft Jet-Datenbankmodul zur Verwendung in SQL-Anweisungen reserviert sind. Die Wörter in der Liste, die nicht vollständig aus Großbuchstaben bestehen, sind auch durch andere Anwendungen reserviert. Deshalb sind die einzelnen Hilfethemen zu diesen Wörtern allgemein gehalten und beziehen sich nicht schwerpunktmäßig auf die Verwendung in SQL-Anweisungen.

Anmerkung Wörter, denen ein Sternchen (*) folgt (z. B. Level und TableID), sind reserviert, haben aber derzeit keine Bedeutung im Zusammenhang mit einer Microsoft Jet-SQL-Anweisung. Nicht unterstrichene Wörter sind nicht mit Worterklärungen verknüpft.

A

ABSOLUTE | ARE
ADD | AS
ADMINDB | AS
ALL | ASC
Alphanumeric - Siehe TEXT | ASSERTION
ALTER | AUTHORIZATION
ALTER TABLE | AUTOINCREMENT - Siehe COUNTER
And | Avg
ANY |

B-C

BEGIN | COLLATION
Between | COLUMN
BINARY | COMMIT
BIT | COMP, COMPRESSION
BIT_LENGTH | CONNECT
BOOLEAN - Siehe BIT | CONNECTION
BOTH | CONSTRAINT, CONSTRAINTS
BY | CONTAINER
BYTE | CONTAINS
CASCADE | CONVERT
CATALOG | Count
CHAR, CHARACTER - Siehe TEXT | COUNTER
CHAR_LENGTH | CREATE
CHARACTER_LENGTH | CURRENCY
CHECK | CURRENT_DATE
CLOSE | CURRENT_TIME
CLUSTERED | CURRENT_TIMESTAMP
COALESCE | CURRENT_USER
COLLATE | CURSOR

D

DATABASE | DISALLOW
DATE - Siehe DATETIME | DISCONNECT
DATETIME | DISTINCT
DAY | DISTINCTROW
DEC, DECIMAL | DOMAIN
DECLARE | DOUBLE
DELETE | DROP
DESC |

E-H

Eqv | FOREIGN
EXCLUSIVECONNECT | FROM
EXEC, EXECUTE | FROM-Klausel
EXISTS | GENERAL - Siehe LONGBINARY
EXTRACT | GRANT
FALSE | GROUP
FETCH | GUID
FIRST | HAVING
FLOAT, FLOAT8 - Siehe DOUBLE | HOUR
FLOAT4 - Siehe SINGLE |

I

IDENTITY | INPUT
IEEEDOUBLE - Siehe DOUBLE | INSENSITIVE
IEEESINGLE - Siehe SINGLE | INSERT
IGNORE | INSERT INTO
IMAGE | INT, INTEGER, INTEGER4 - Siehe LONG
Imp | INTEGER1 - Siehe BYTE
In | INTEGER1 - Siehe SHORT
IN | INTERVAL
INDEX | INTO
INDEXCREATEDB | Is
INNER | ISOLATION

J-M

JOIN | LONGTEXT
KEY | LOWER
LANGUAGE | MATCH
LAST | Max
LEFT | MEMO - Siehe LONGTEXT
Level* | Min
Like | MINUTE
LOGICAL, LOGICAL1 - Siehe BIT | Mod
LONG | MONEY - Siehe CURRENCY
LONGBINARY | MONTH
LONGCHAR |

N-P

NATIONAL | Outer*
NCHAR | OUTPUT
NONCLUSTERED | OWNERACCESS
Not | PAD
NTEXT | PARAMETERS
NULL | PARTIAL
NUMBER - Siehe DOUBLE | PASSWORD
NUMERIC - Siehe DECIMAL | PERCENT
NVARCHAR | PIVOT
OCTET_LENGTH | POSITION
OLEOBJECT - Siehe LONGBINARY | PRECISION
ON | PREPARE
OPEN | PRIMARY
OPTION | PRIVILEGES
Or | PROC, PROCEDURE
ORDER | PUBLIC

Q-S

REAL - Siehe SINGLE | SMALLDATETIME
REFERENCES | SMALLINT - Siehe SHORT
RESTRICT | SMALLMONEY
REVOKE | SOME
RIGHT | SPACE
ROLLBACK | SQL
SCHEMA | SQLCODE, SQLERROR, SQLSTATE
SECOND | StDev
SELECT | StDevP
SELECTSCHEMA | STRING - Siehe TEXT
SELECTSECURITY | SUBSTRING
SET | Sum
SHORT | SYSNAME
SINGLE | SYSTEM_USER
SIZE |

T-Z

TABLE | UPDATEOWNER
TableID* | UPDATESECURITY
TEMPORARY | UPPER
TEXT | USAGE
TIME - Siehe DATETIME | USER
TIMESTAMP | USING
TIMEZONE_HOUR | VALUE
TIMEZONE_MINUTE | VALUES
TINYINT | Var
TO | VARBINARY - Siehe BINARY
TOP | VARCHAR - Siehe TEXT
TRAILING | VarP
TRANSACTION | VARYING
TRANSFORM | VIEW
TRANSLATE | WHEN
TRANSLATION | WHENEVER
TRIM | WHERE
TRUE | WITH
UNION | WORK
UNIQUE | Xor
UNIQUEIDENTIFIER | YEAR
UNKNOWN | YESNO - Siehe BIT
UPDATE | ZONE
UPDATEIDENTITY |


SQL-Datentypen

Die SQL-Datentypen des Microsoft Jet-Datenbankmoduls umfassen 13 Hauptdatentypen, die vom Microsoft® Jet-Datenbankmodul definiert werden, sowie mehrere zulässige Synonyme, die für diese Datentypen erkannt werden.

Die folgende Tabelle zeigt eine Liste der primären Datentypen. Die Synonyme sind unter Reservierte Wörter des Microsoft Jet-Datenbankmoduls aufgeführt.

Datentyp | Größe im Speicher | Beschreibung
BINARY | 1 Byte pro Zeichen | Beliebige Arten von Daten können in einem Feld diesen Typs gespeichert werden. Es erfolgt keine Übersetzung der Daten (z. B. in Textdaten). Die Art, wie Daten in ein BINARY-Feld eingegeben werden, bestimmt die Art der Ausgabe.
BIT | 1 Byte | Ja/Nein-Werte (boolesche Werte) sowie Felder, die einen von zwei möglichen Werten enthalten.
TINYINT | 1 Byte | Eine Ganzzahl von 0 bis 255.
MONEY | 8 Bytes | Eine skalierte Ganzzahl von – 922.337.203.685.477,5808 bis 922.337.203.685.477,5807.
DATETIME (Siehe DOUBLE) | 8 Bytes | Eine Datums- oder Zeitangabe ab dem Jahr 100 bis zum Jahr 9999.
UNIQUEIDENTIFIER | 128 Bits | Eine eindeutige Kennnummer, die bei Fernprozeduraufrufen (RPC = remote procedure calls) verwendet wird.
REAL | 4 Bytes | Eine Gleitkommazahl einfacher Genauigkeit, die die folgenden Werte annehmen kann: -3,402823E38 bis -1,401298E-45 für negative Werte, 1,401298E-45 bis 3,402823E38 für positive Werte und 0.
FLOAT | 8 Bytes | Eine Gleitkommazahl doppelter Genauigkeit, die die folgenden Werte annehmen kann: -1.79769313486232E308 bis -4.94065645841247E-324 für negative Werte, 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte und 0.
SMALLINT | 2 Bytes | Eine kurze Ganzzahl von – 32.768 bis 32.767. (Siehe Anmerkungen)
INTEGER | 4 Bytes | Eine lange Ganzzahl von – 2.147.483.648 bis 2.147.483.647. (Siehe Anmerkungen)
DECIMAL | 17 Bytes | Ein genauer numerischer Datentyp, der Werte von 1028 - 1 bis - 1028 - 1 enthält. Sie können sowohl Präzision (1 - 28) als auch Dezimalstelle (0 - definierte Präzision) definieren. Die Standardwerte für Präzision und Dezimalstelle lauten 18 bzw. 0.
TEXT | 2 Bytes pro Zeichen (Siehe Anmerkungen) | Von 0 bis maximal 2,14 GB.
IMAGE | Nach Bedarf | Von 0 bis maximal 2,14 GB. Wird für OLE-Objekte verwendet.
CHARACTER | 2 Bytes pro Zeichen (Siehe Anmerkungen) | Von 0 bis 255 Zeichen.

Anmerkungen

  • Sowohl der Ausgangs- als auch der Inkrementwert kann mit der ALTER TABLE-Anweisung verändert werden. Neue Zeilen, die in die Tabelle eingefügt werden, besitzen die Werte, die automatisch auf der Grundlage der neuen Ausgangs- und Inkrementwerte für die Spalte generiert werden. Wenn der neue Ausgangs- und Inkrementwert Werte generieren kann, die auf der Grundlage der vorherigen Ausgangs- und Inkrementwerte generierten Werten entsprechen, werden mehrfach vorkommende Werte erzeugt. Wenn die Spalte einen Primärschlüssel darstellt, kann das Einfügen neuer Zeilen zu Fehlern führen, wenn doppelt vorkommende Werte generiert werden.
  • Um den letzten Wert zu ermitteln, der für eine automatisch inkrementierte Spalte verwendet wurde, können Sie die folgende Anweisung verwenden: SELECT @@IDENTITY. Sie können keinen Tabellennamen angeben. Der zurückgegebene Wert stammt daher aus der zuletzt verwendeten Tabelle, die eine automatisch inkrementierte Spalte enthält, die aktualisiert wurde.
  • Zeichen in Feldern, die entweder als TEXT (auch als MEMO bezeichnet) oder CHAR (auch als TEXT(n) mit einer bestimmten Länge bezeichnet) definiert sind, werden im Unicode-Darstellungsformat gespeichert. Unicode-Zeichen erfordern einheitlich zwei Bytes für jedes Zeichen. Für vorhandene Microsoft Jet-Datenbanken, die hauptsächlich Zeichendaten enthalten, kann dies beinahe eine Verdoppelung der Größe der Datenbankdatei bedeuten, wenn sie in das Microsoft Jet 4.0-Format umgewandelt werden. Die Unicode-Darstellung vieler Zeichensätze, die früher als Einzel-Byte-Zeichensätze (Single-Byte Character Sets – SBCS) bezeichnet wurden, kann jedoch einfach einzelne Bytes komprimiert werden. Weitere Informationen finden Sie unter CREATE TABLE. Wenn Sie eine CHAR-Spalte mit dem COMPRESSION-Attribut definieren, werden die Daten beim Speichern automatisch komprimiert und beim Abrufen aus der Spalte dekomprimiert.
Siehe auch
Äquivalente ANSI SQL-Datentypen Für SQL reservierte Wörter des Microsoft Jet-Datenbankmoduls


Skalare ODBC-Funktionen

Microsoft® Jet-SQL unterstützt die Verwendung der definierten ODBC-Syntax für skalare Funktionen. Beispielsweise gibt die folgende Abfrage

SELECT DAILYCLOSE, DAILYCHANGE FROM DAILYQUOTE

WHERE {fn ABS(DAILYCHANGE)} > 5

alle Zeilen zurück, in denen der Betrag der Preisänderung eines Artikels größer als fünf ist.

Eine Untermenge der durch ODBC definierten skalaren Funktionen wird unterstützt. Die folgende Tabelle enthält die unterstützten Funktionen.

Eine Beschreibung der Argumente sowie eine vollständige Erläuterung der Escape-Syntax zum Integrieren von Funktionen in eine SQL-Anweisung finden Sie in der ODBC-Dokumentation.

Zeichenfolgefunktionen
ASCII | LENGTH | RTRIM
CHAR | LOCATE | SPACE
CONCAT | LTRIM | SUBSTRING
LCASE | RIGHT | UCASE
LEFT |  |

Numerische Funktionen
ABS | FLOOR | SIGN
ATAN | LOG | SIN
CEILING | MOD | SQRT
COS | POWER | TAN
EXP | RAND |

Uhrzeit- und Datumsfunktionen
CURDATE | DAYNAME | NOW
CURTIME | HOUR | QUARTER
DAYOFMONTH | MINUTE | SECOND
DAYOFWEEK | MONTH | WEEK
DAYOFYEAR | MONTHNAME | YEAR

Datentypkonvertierung
CONVERT Zeichenfolgeliterale können in die folgenden Datentypen konvertiert werden: SQL_FLOAT, SQL_DOUBLE, SQL_NUMERIC, SQL_INTEGER, SQL_REAL, SQL_SMALLINT, SQL_VARCHAR und SQL_DATETIME.

Siehe auch

Anpassen des Microsoft Jet-Datenbankmoduls für den Zugriff über ODBC


Vergleich zwischen der SQL-Sprache von Microsoft Jet und ANSI SQL

Die SQL-Sprache des Microsoft Jet-Datenbankmoduls ist grundsätzlich zu ANSI-89 Level 1 kompatibel. Allerdings sind einige ANSI SQL-Funktionen in der SQL-Sprache des Microsoft® Jet-Datenbankmoduls nicht implementiert. Mit Erscheinen der Version 4.X von Microsoft Jet stellt der Microsoft OLE DB-Provider for Jet eine umfangreichere ANSI-92 SQL-Syntax zur Verfügung. Umgekehrt umfasst die SQL-Sprache des Microsoft Jet-Datenbankmoduls reservierte Wörter und Funktionen, die in ANSI SQL nicht unterstützt werden.

Die wesentlichen Unterschiede
  • Die SQL-Sprache des Microsoft Jet-Datenbankmoduls und ANSI SQL haben jeweils unterschiedliche reservierte Wörter sowie Datentypen. Weitere Informationen hierzu finden Sie unter Reservierte Wörter des Microsoft Jet-Datenbankmoduls und Äquivalente ANSI SQL-Datentypen. Bei der Verwendung von Microsoft OLE DB Provider for Jet 4.X gibt es weitere reservierte Wörter.
  • Es gelten unterschiedliche Regeln für das Konstrukt Between...And, das die folgende Syntax hat:

Ausdr1 [NOT] Between Wert1 And Wert2

In Microsoft Jet-SQL kann Wert1 größer als Wert2 sein, in ANSI SQL muss Wert1 kleiner oder gleich Wert2 sein.

  • Microsoft Jet-SQL unterstützt sowohl ANSI SQL-Platzhalterzeichen als auch Microsoft Jet-spezifische Platzhalterzeichen für den Like-Operator. Sie müssen entweder ANSI- oder Microsoft Jet-Platzhalterzeichen verwenden; beide Zeichensätze können nicht gemischt werden. Die ANSI SQL-Platzhalterzeichen sind nur verfügbar, wenn Sie Jet 4.x und den Microsoft OLE DB-Provider for Jet verwenden. Wenn Sie versuchen, die ANSI SQL-Platzhalterzeichen über Microsoft Access oder DAO zu verwenden, werden diese als Literale interpretiert. Umgekehrt verhält es sich beim Verwenden von Microsoft OLE DB Provider for Jet und Jet 4.x.

    Gesuchtes Zeichen Microsoft Jet-SQL ANSI SQL
    Einzelnes Zeichen ? _ (Unterstrich)
    Kein, ein oder mehrere Zeichen * %

  • Microsoft Jet-SQL ist im allgemeinen weniger restriktiv. Beispielsweise können Ausdrücke gruppiert und sortiert werden.
  • Microsoft Jet-SQL unterstützt auch komplexere Ausdrücke als ANSI SQL.
Erweiterte Funktionen in Microsoft Jet-SQL

Microsoft Jet-SQL bietet die folgenden erweiterten Funktionen:

· Die TRANSFORM-Anweisung, die Unterstützung für Kreuztabellenabfragen bietet.

  • Zusätzliche Aggregatfunktionen, wie StDev und VarP.

· Die PARAMETERS-Deklaration zum Definieren von Parameterabfragen

ANSI SQL-Funktionen, die von Microsoft Jet-SQL nicht unterstützt werden

Microsoft Jet-SQL unterstützt folgende Funktionen von ANSI SQL nicht:

  • Verweise auf die Aggregatfunktion DISTINCT. Microsoft Jet-SQL lässt z. B. den Ausdruck SUM(DISTINCT Spaltenname) nicht zu.
  • Die Klausel LIMIT TO nn ROWS, die verwendet wird, um die Anzahl der Zeilen einzuschränken, die von einer Abfrage zurückgegeben werden. Es kann nur die WHERE-Klausel verwendet werden, um den Umfang einer Abfrage einzuschränken.
Siehe auch
Äquivalente ANSI SQL-Datentypen | Reservierte SQL-Wörter des Microsoft Jet-Datenbankmoduls
Like Operator (Microsoft Jet-SQL) | SQL-Aggregatfunktionen (SQL)
SQL-Datentypen des Microsoft Jet-Datenbankmoduls | Verwenden von Platzhalterzeichen in Zeichenfolgenvergleichen


Äquivalente ANSI SQL-Datentypen

Die folgende Tabelle führt ANSI SQL-Datentypen, ihre Entsprechungen in den SQL-Datentypen des Microsoft Jet-Datenbankmoduls sowie gültige Synonyme dafür auf. Außerdem führt sie die äquivalenten Datentypen von Microsoft® SQL Server™ auf.

ANSI SQL- Datentyp | Microsoft Jet- SQL-Datentyp | Synonym | Microsoft SQL Server-Datentyp
BIT, BIT VARYING | BINARY (Siehe Anmerkungen) | VARBINARY, BINARY VARYING BIT VARYING | BINARY, VARBINARY
Nicht unterstützt | BIT (Siehe Anmerkungen) | BOOLEAN, LOGICAL, LOGICAL1, YESNO | BIT
Nicht unterstützt | TINYINT | INTEGER1, BYTE | TINYINT
Nicht unterstützt | COUNTER (Siehe Anmerkungen) | AUTOINCREMENT | (Siehe Anmerkungen)
Nicht unterstützt | MONEY | CURRENCY | MONEY
DATE, TIME, TIMESTAMP | DATETIME | DATE, TIME (Siehe Anmerkungen) | DATETIME
Nicht unterstützt | UNIQUEIDENTIFIER | GUID | UNIQUEIDENTIFIER
DECIMAL | DECIMAL | NUMERIC, DEC | DECIMAL
REAL | REAL | SINGLE, FLOAT4, IEEESINGLE | REAL
DOUBLE PRECISION, FLOAT | FLOAT | DOUBLE, FLOAT8, IEEEDOUBLE, NUMBER (Siehe Anmerkungen) | FLOAT
SMALLINT | SMALLINT | SHORT, INTEGER2 | SMALLINT
INTEGER | INTEGER | LONG, INT, INTEGER4 | INTEGER
INTERVAL | Nicht unterstützt |  | Nicht unterstützt
Nicht unterstützt | IMAGE | LONGBINARY, GENERAL, OLEOBJECT | IMAGE
Nicht unterstützt | TEXT (Siehe Anmerkungen) | LONGTEXT, LONGCHAR, MEMO, NOTE, NTEXT (Siehe Anmerkungen) | TEXT
CHARACTER, CHARACTER VARYING, NATIONAL CHARACTER, NATIONAL CHARACTER VARYING | CHAR (Siehe Anmerkungen) | TEXT(n), ALPHANUMERIC, CHARACTER, STRING, VARCHAR, CHARACTER VARYING, NCHAR, NATIONAL CHARACTER, NATIONAL CHAR, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING (Siehe Anmerkungen) | CHAR, VARCHAR, NCHAR, NVARCHAR

Anmerkungen

  • Der ANSI SQL-Datentyp BIT entspricht nicht dem SQL-Datentyp BIT von Microsoft Jet, sondern dem Datentyp BINARY. Es gibt kein ANSI SQL-Äquivalent für den SQL-Datentyp BIT in Microsoft Jet.
  • TIMESTAMP wird nicht mehr als Synonym für DATETIME unterstützt.
  • NUMERIC wird nicht mehr als Synonym für FLOAT oder DOUBLE unterstützt. NUMERIC wird nun als Synonym für DECIMAL verwendet.
  • Ein LONGTEXT-Feld wird immer im Unicode-Darstellungsformat gespeichert.
  • Wenn der Datentypname TEXT ohne die optionale Angabe der Länge verwendet wird, beispielsweise TEXT(25), wird ein LONGTEXT-Feld erstellt. Auf diese Weise können CREATE TABLE-Anweisungen geschrieben werden, die Datentypen erzeugen, die konsistent mit Microsoft SQL Server sind.
  • Ein CHAR-Feld wird immer im Unicode-Darstellungsformat gespeichert, das das Äquivalent des ANSI SQL NATIONAL CHAR-Datentyps darstellt.
  • Wenn der Datentypname TEXT verwendet und die optionale Längenangabe definiert wird, beispielsweise TEXT(25), ist der Datentyp des Felds äquivalent mit dem CHAR-Datentyp. Auf diese Weise wird die Abwärtskompatibilität für die meisten Microsoft Jet-Anwendungen sichergestellt, während gleichzeitig der Datentyp TEXT (ohne Längenangabe) auf Microsoft SQL Server übertragen werden kann.
Siehe auch

SQL-Datentypen des Microsoft Jet-Datenbankmoduls


Verwenden von Platzhalterzeichen in Zeichenfolgenvergleichen

Der integrierte Mustervergleich ist beim Vergleichen von Zeichenfolgen sehr hilfreich. Die folgende Tabelle zeigt die Platzhalterzeichen, die Sie zusammen mit dem Like-Operator verwenden können, sowie die Anzahl der Ziffern oder Zeichenfolgen, für die eine Entsprechung erkannt wird.

Zeichen in Muster | Erkannte Entsprechung mit Ausdruck
? _ (Unterstrich) | Einzelnes Zeichen
* oder % | Kein, ein oder mehrere Zeichen
# | Beliebige einzelne Ziffer (0-9)
[Zeichenliste] | Beliebiges einzelnes Zeichen in Zeichenliste
[!Zeichenliste] | Beliebiges einzelnes Zeichen, das nicht in Zeichenliste enthalten ist

Eine Gruppe aus einem oder mehreren Zeichen (Zeichenliste) in eckigen Klammern ([ ]) kann verwendet werden, um eine Entsprechung mit jedem einzelnen Zeichen in Ausdruck zu erkennen. Dabei beinhaltet Zeichenliste fast alle Zeichen aus dem ANSI-Zeichensatz (auch Ziffern). Eine Entsprechung der Sonderzeichen "linke eckige Klammer" ([ ), Fragezeichen (?), #-Zeichen und Sternchen (*) mit sich selbst kann nur dann erkannt werden, wenn sie in eckige Klammern eingeschlossen sind. Sie können die rechte eckige Klammer ( ]) nicht innerhalb einer Gruppe verwenden, um eine Entsprechung mit sich selbst zu erkennen, wohl aber außerhalb einer Gruppe als eigenständiges Zeichen.

Neben einer einfachen Liste aus Zeichen, die in eckige Klammern eingeschlossen ist, kann Zeichenliste einen Bereich von Zeichen mit einem Bindestrich (-) angeben, der den obersten und den untersten Wert des Bereichs voneinander trennt. Bei der Verwendung von [A-Z] in Muster wird z. B. eine Entsprechung erkannt, wenn die entsprechende Zeichenposition in Ausdruck einen großgeschriebenen Buchstaben im Bereich von A bis Z enthält. Mehrere Bereiche können innerhalb der Klammern ohne Trennzeichen angegeben werden. Bei [a-zA-Z0-9] werden z. B. Entsprechungen mit allen alphanumerischen Zeichen erkannt.

Bitte beachten Sie, dass die ANSI SQL-Platzhalterzeichen (%) und (_) nur in Version 4.x von Microsoft® Jet und dem Microsoft OLE DB-Provider for Jet verfügbar sind. Bei der Verwendung durch Microsoft Access oder DAO werden sie als Literale behandelt.

Es gelten einige weitere wichtige Regeln für den Mustervergleich:

  • Ein Ausrufezeichen (!) am Anfang von Zeichenliste bedeutet, dass eine Entsprechung erkannt wird, wenn ein Zeichen in Ausdruck gefunden wird, das nicht in Zeichenliste enthalten ist. Außerhalb eckiger Klammern wird das Ausrufezeichen selbst erkannt.
  • Der Bindestrich (-) kann entweder am Anfang (nach einem Ausrufezeichen, sofern vorhanden) oder am Ende von Zeichenliste stehen, damit der Bindestrich selbst erkannt wird. An jeder anderen Position wird der Bindestrich verwendet, um einen Bereich von ANSI-Zeichen zu kennzeichnen.
  • Wenn ein Zeichenbereich angegeben wird, müssen die Zeichen aufsteigend sortiert (A-Z oder 0-100) erscheinen. [A-Z] ist ein gültiges Muster, aber [Z-A] nicht.
  • Die Zeichensequenz [ ] wird ignoriert, da sie als Zeichenfolge der Länge Null ("") angesehen wird.
Siehe auch
Like-Operator SQL-Ausdrücke


CREATE TABLE-Anweisung (Microsoft Jet-SQL)

CREATE TABLE-Anweisung

Erstellt eine neue Tabelle.

Anmerkung Das Microsoft Jet-Datenbankmodul unterstützt die Verwendung von CREATE TABLE oder einer der anderen DDL-Anweisungen (DDL = Data Definition Language) nicht für Datenbanken, die nicht auf dem Jet-Datenbankmodul basieren. Verwenden Sie stattdessen die Create-Methoden für Datenzugriffsobjekte.

Syntax

CREATE [TEMPORARY] TABLE Tabelle (Feld1 Typ [(Größe)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [Index1] [, Feld2 Typ [(Größe)] [NOT NULL] [Index2] [, ...]] [, CONSTRAINT Mehrfelderindex [, ...]])

Die CREATE TABLE-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Tabelle | Der Name der Tabelle, die erstellt werden soll.
Feld1, Feld2 | Die Namen der Felder, die in der neuen Tabelle erstellt werden sollen. Sie müssen mindestens ein Feld erstellen.
Typ | Der Datentyp für Feld in der neuen Tabelle.
Größe | Die Feldgröße in Anzahl an Zeichen (nur bei Feldern des Datentyps Text und Binary).
Index1, Index2 | Eine CONSTRAINT-Klausel, die einen Einzelfeldindex definiert. Weitere Informationen zum Erstellen dieses Indexes finden Sie unter CONSTRAINT-Klausel.
Mehrfelderindex | Eine CONSTRAINT-Klausel, die einen Mehrfelderindex definiert. Weitere Informationen zum Erstellen dieses Indexes finden Sie unter CONSTRAINT-Klausel.

Hinweise

Definieren Sie mit der CREATE TABLE-Anweisung eine neue Tabelle und deren Felder sowie die Feldeinschränkungen. Sofern NOT NULL für ein Feld festgelegt wurde, sind gültige Daten für die Datensätze in diesem Feld erforderlich.

Eine CONSTRAINT-Klausel legt Einschränkungen für ein Feld fest und kann zum Einrichten des Primärschlüssels verwendet werden. Sie können auch die CREATE INDEX-Anweisung verwenden, um einen Primärschlüssel oder weitere Indizes für vorhandene Tabellen zu erstellen.

Sie können NOT NULL für ein einzelnes Feld oder innerhalb einer benannten CONSTRAINT-Klausel, die entweder auf ein einzelnes Feld oder mehrere CONSTRAINT-Felder angewendet wird, verwenden. Sie können die NOT NULL-Einschränkung jedoch nur einmal auf ein Feld anwenden. Wenn Sie versuchen, diese Einschränkung mehr als einmal anzuwenden, dann tritt ein Laufzeitfehler auf.

Wenn eine TEMPORARY-Tabelle erstellt wird, ist sie nur in der Sitzung sichtbar, in der sie erstellt wurde. Sie wird automatisch gelöscht, wenn die Sitzung beendet wird. Der Zugriff auf temporäre Tabellen kann durch mehrere Benutzer erfolgen.

Das Attribut WITH COMPRESSION kann nur bei den Datentypen CHARACTER und MEMO (auch als TEXT bezeichnet) und ihren Synonymen verwendet werden.

Das Attribut WITH COMPRESSION wurde für CHARACTER-Spalten aufgrund der Änderung des Unicode-Zeichendarstellungsformats hinzugefügt. Unicode-Zeichen erfordern einheitlich zwei Bytes für jedes Zeichen. Für vorhandene Microsoft® Jet-Datenbanken, die hauptsächlich Zeichendaten enthalten, kann dies beinahe eine Verdoppelung der Größe der Datenbankdatei bedeuten, wenn sie in das Format der Version Microsoft Jet 4.0 umgewandelt werden. Die Unicode-Darstellung vieler Zeichensätze, die früher als Single-Byte-Zeichensätze (Single-Byte Character Sets – SBCS) bezeichnet wurden, kann jedoch einfach in ein einzelnes Byte komprimiert werden. Wenn Sie eine CHARACTER-Spalte mit diesem Attribut definieren, werden die Daten beim Speichern automatisch komprimiert und beim Abrufen aus der Spalte dekomprimiert.

MEMO-Spalten können ebenfalls so definiert werden, dass sie Daten in einem komprimierten Format speichern. Sie müssen jedoch eine Einschränkung beachten. Nur Instanzen von MEMO-Spalten, die komprimiert 4096 Bytes oder weniger beanspruchen, werden komprimiert. Alle anderen Instanzen von MEMO-Spalten bleiben unkomprimiert. Für eine bestimmte MEMO-Spalte in einer bestimmten Tabelle kann dies bedeuten, dass einige Daten komprimiert und andere unkomprimiert sind.

Siehe auch
ADD USER-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE VIEW-Anweisung
ALTER TABLE-Anweisung | DROP-Anweisung
CONSTRAINT-Klausel | DROP USER- oder GROUP-Anweisung
CREATE INDEX-Anweisung | GRANT-Anweisung
CREATE PROCEDURE-Anweisung | REVOKE-Anweisung

Beispiel

CREATE TABLE-Anweisung, CONSTRAINT-Klausel (Beispiel)


CREATE INDEX-Anweisung (Microsoft Jet-SQL)

CREATE INDEX-Anweisung

Legt einen neuen Index für eine bereits vorhandene Tabelle an.

Anmerkung Das Microsoft Jet-Datenbankmodul unterstützt die Verwendung von CREATE INDEX oder einer anderen der DDL-Anweisungen (DDL = Data Definition Language) nicht für Datenbanken, die nicht auf dem Microsoft Jet-Datenbankmodul basieren (außer zur Erstellung eines Pseudoindexes auf einer mit ODBC verknüpften Tabelle). Verwenden Sie stattdessen die Create-Methoden für Datenzugriffsobjekte . Weitere Informationen finden Sie unter "Hinweise".

Syntax

CREATE [ UNIQUE ] INDEX Index
ON Tabelle (Feld [ASC|DESC][, Feld [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

Die CREATE INDEX-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Index | Der Name des Indexes, der erstellt werden soll.
Tabelle | Der Name der existierenden Tabelle, die den Index enthalten wird.
Feld | Der Name eines oder mehrerer zu indizierender Felder. Sie erstellen einen Einzelfeldindex, indem Sie den Feldnamen in Klammern hinter dem jeweiligen Tabellennamen angeben. Sie erstellen einen Mehrfelderindex, indem Sie den Namen aller Felder angeben, die in die Indexdefinition aufgenommen werden sollen. Sie können Indizes für eine absteigende Sortierung erstellen, indem Sie das reservierte Word DESC (für descending = absteigend) verwenden. Andernfalls legen Indizes eine aufsteigende Sortierreihenfolge fest.

Hinweise

Mit dem reservierten Wort UNIQUE können Sie verhindern, dass zu einem Index gehörende Felder in unterschiedlichen Datensätzen gleiche Werte enthalten.

In der optionalen WITH-Klausel können Sie Regeln zur Überprüfung von Daten vorschreiben: Beispielsweise:

  • Mit der Option DISALLOW NULL können Sie verhindern, dass neu angelegte Datensätze in den Feldern, die zum Index gehören, Null-Einträge enthalten.
  • Mit der Option IGNORE NULL können Sie dafür sorgen, dass Datensätze, die in den indizierten Feldern Null-Werte enthalten, in den Index aufgenommen werden.
  • Mit dem reservierten Wort PRIMARY können Sie die Felder, die den Index definieren sollen, als Primärschlüssel festlegen. Da dies impliziert, dass der Schlüssel eindeutig ist, können Sie auf die Angabe des reservierten Worts UNIQUE verzichten.

Sie können mit CREATE INDEX einen Pseudoindex erstellen, und zwar für eine verknüpfte Tabelle in einer ODBC-Datenquelle, wie beispielsweise Microsoft® SQL Server™, die noch keinen Index hat. Sie benötigen keine Berechtigungen oder keinen Zugriff auf den Remote-Server, um einen Pseudoindex zu erstellen. Der Remote-Datenbank ist der Pseudoindex nicht bekannt, und sie wird dadurch auch nicht geändert. Sowohl für verknüpfte als auch für systemeigene Tabellen verwenden Sie dieselbe Syntax. Es kann besonders nützlich sein, einen Pseudoindex für eine normalerweise schreibgeschützte Tabelle zu erstellen.

Sie können mit der ALTER TABLE-Anweisung einer Tabelle auch einen Einzelfeldindex oder einen Mehrfelderindex hinzufügen, und mit der ALTER TABLE-Anweisung oder der DROP-Anweisung können Sie einen Index entfernen, der mit ALTER TABLE oder CREATE INDEX erstellt wurde.

Anmerkung Verwenden Sie das reservierte Wort PRIMARY nicht, wenn Sie einen neuen Index für eine Tabelle erstellen, die bereits einen Primärschlüssel hat; andernfalls tritt ein Fehler auf.

Siehe auch
ADD USER-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE VIEW-Anweisung
ALTER TABLE-Anweisung | DROP-Anweisung
CONSTRAINT-Klausel | DROP USER- oder GROUP-Anweisung
CREATE PROCEDURE-Anweisung | GRANT-Anweisung
CREATE TABLE-Anweisung | REVOKE-Anweisung

Beispiel

CREATE INDEX-Anweisung (Beispiel)


CREATE PROCEDURE-Anweisung (Microsoft Jet-SQL)

CREATE PROCEDURE-Anweisung

Erstellt eine gespeicherte Prozedur.

Anmerkung Das Microsoft Jet-Datenbankmodul unterstützt die Verwendung von CREATE PROCEDURE oder einer der anderen DDL-Anweisungen (DDL = Data Definition Language) nicht für Datenbanken, die nicht auf dem Jet-Datenbankmodul basieren.

Syntax

CREATE PROCEDURE Name
[Param1 Datentyp[, Param2 Datentyp[, ...]] AS sqlstatement

Die CREATE PROCEDURE-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Prozedur | Der Name der Prozedur. Er muss Standard-Namenskonventionen folgen.
Param1, Param2 | Einer der 255 Feldnamen oder Parameter. Beispiel: CREATE PROCEDURE Umsatz_nach_Ländern [Erstes Datum] DateTime, [Letztes Datum] DateTime; Weitere Informationen zu Parametern finden Sie unter PARAMETERS.
Datentyp | Einer der primären Microsoft Jet SQL-Datentypen oder ein Synonym dafür.
SQLAnweisung | Eine SQL-Anweisung wie beispielsweise SELECT, UPDATE, DELETE, INSERT, CREATE TABLE, DROP TABLE usw.

Hinweise

Eine SQL-Prozedur besteht aus einer PROCEDURE-Klausel (die den Namen der Prozedur angibt), einer optionalen Liste mit Parameterdefinitionen und einer einzelnen SQL-Anweisung.

Der Name einer Prozedur darf nicht gleich dem Namen einer vorhandenen Tabelle sein.

Siehe auch
ADD USER-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE VIEW-Anweisung
ALTER TABLE-Anweisung | DROP-Anweisung
CONSTRAINT-Klausel | DROP USER- oder GROUP-Anweisung
CREATE INDEX-Anweisung | GRANT-Anweisung
CREATE TABLE-Anweisung | REVOKE-Anweisung

Beispiel

CREATE PROCEDURE-Anweisung, PROCEDURE-Klausel (Beispiel)


CREATE USER- oder GROUP-Anweisung (Microsoft Jet-SQL)

CREATE USER- oder GROUP-Anweisung

Erstellt einen oder mehrere neue Benutzer oder Gruppen.

Syntax

Erstellen eines Benutzers:

CREATE USER Benutzer Kennwort pid [, Benutzer Kennwort pid, …]

Erstellen einer Gruppe:

CREATE GROUP Gruppe pid[, Gruppe pid, …]

Die CREATE USER- oder GROUP-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Benutzer | Der Name eines Benutzers, der zur Informationsdatei für Arbeitsgruppen hinzugefügt werden soll.
Gruppe | Der Name einer Gruppe, die zur Informationsdatei für Arbeitsgruppen hinzugefügt werden soll.
Kennwort | Das Kennwort, das dem angegebenen Benutzernamen zugeordnet werden soll.
pid | Die persönliche ID.

Bemerkungen

Ein Benutzer und eine Gruppe können nicht den gleichen Namen besitzen.

Ein Kennwort ist für jeden Benutzer und für jede Gruppe erforderlich, die erstellt wird.

Siehe auch
ADD USER-Anweisung | CREATE TABLE-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE VIEW-Anweisung
ALTER TABLE-Anweisung | DROP-Anweisung
CONSTRAINT-Klausel | DROP USER- oder GROUP-Anweisung
CREATE INDEX-Anweisung | GRANT-Anweisung
CREATE PROCEDURE-Anweisung | REVOKE-Anweisung


CREATE VIEW-Anweisung (Microsoft Jet-SQL)

CREATE VIEW-Anweisung

Erstellt eine neue Ansicht.

Anmerkung Das Microsoft Jet-Datenbankmodul unterstützt die Verwendung von CREATE VIEW oder einer der anderen DDL-Anweisungen (DDL = Data Definition Language) nicht für Datenbanken, die nicht auf dem Jet-Datenbankmodul basieren.

Syntax

CREATE VIEW Name [(Feld1[, Feld2[, ...]])] AS Auswahlanweisung

Die CREATE VIEW-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Ansicht | Der Name der Ansicht, die erstellt werden soll.
Feld1, Feld2 | Der Name des Feldes oder der Felder für die entsprechenden Felder, die in Auswahlanweisung angegeben wurden.
Auswahlanweisung | Eine SQL SELECT-Anweisung. Weitere Informationen finden Sie unter SELECT-Anweisung.

Hinweise

Bei der SELECT-Anweisung, die die Ansicht definiert, kann es sich nicht um eine SELECT INTO-Anweisung handeln.

Die SELECT-Anweisung, die die Ansicht definiert, kann keine Parameter enthalten.

Der Name der Ansicht darf nicht gleich dem Namen einer vorhandenen Tabelle sein.

Wenn die durch die SELECT-Anweisung definierte Abfrage aktualisierbar ist, ist die Ansicht ebenfalls aktualisierbar. Andernfalls ist die Ansicht schreibgeschützt.

Wenn zwei Felder der durch die SELECT-Anweisung definierten Abfrage den gleichen Namen besitzen, muss die Ansichtsdefinition eine Feldliste enthalten, die einen eindeutigen Namen für jedes Feld der Abfrage angibt.

Siehe auch
ADD USER-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE TABLE-Anweisung
ALTER TABLE-Anweisung | DROP-Anweisung
CONSTRAINT-Klausel | DROP USER- oder GROUP-Anweisung
CREATE INDEX-Anweisung | GRANT-Anweisung
CREATE PROCEDURE-Anweisung | REVOKE-Anweisung


ADD USER-Anweisung (Microsoft Jet-SQL)

ADD USER-Anweisung

Fügt einen oder mehrere vorhandene Benutzer zu einer vorhandenen Gruppe hinzu.

Syntax

ADD USER Benutzer[, Benutzer, …] TO Gruppe

Die ADD USER-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Benutzer | Der Name eines Benutzers, der zur Informationsdatei für Arbeitsgruppen hinzugefügt werden soll.
Gruppe | Der Name einer Gruppe, die zur Informationsdatei für Arbeitsgruppen hinzugefügt werden soll.

Bemerkungen

Nachdem ein Benutzer zu einer Gruppe hinzugefügt wurde, besitzt dieser Benutzer alle Berechtigungen, die der Gruppe gewährt wurden.

Siehe auch
ALTER USER- oder DATABASE-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER TABLE-Anweisung | CREATE VIEW-Anweisung
CONSTRAINT-Klausel | DROP-Anweisung
CREATE INDEX-Anweisung | DROP USER- oder GROUP-Anweisung
CREATE PROCEDURE-Anweisung | GRANT-Anweisung
CREATE TABLE-Anweisung | REVOKE-Anweisung


DROP USER- oder GROUP-Anweisung (Microsoft Jet-SQL)

DROP USER- oder GROUP-Anweisung

Löscht einen oder mehrere vorhandene Benutzer oder Gruppen oder entfernt einen oder mehrere vorhandene Benutzer aus einer vorhandenen Gruppe.

Syntax

Löschen eines oder mehrerer Benutzer oder Entfernen eines oder mehrerer Benutzer aus einer Gruppe:

DROP USER Benutzer[, Benutzer, …] FROM Gruppe

Löschen einer oder mehrerer Gruppen:

DROP GROUP Gruppe[, Gruppe, …]

Die DROP USER- oder GROUP-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Benutzer | Der Name eines Benutzers, der aus der Informationsdatei für Arbeitsgruppen entfernt werden soll.
Gruppe | Der Name einer Gruppe, die aus der Informationsdatei für Arbeitsgruppen entfernt werden soll.

Bemerkungen

Wenn das Schlüsselwort FROM in der DROP USER-Anweisung verwendet wird, wird jeder der in der Anweisung aufgelisteten Benutzer aus der Gruppe entfernt, die hinter dem Schlüsselwort FROM angegeben wird. Die Benutzer selbst werden jedoch nicht gelöscht.

Die DROP GROUP-Anweisung löscht die angegebene(n) Gruppe(n). Die Benutzer, die Mitglieder der Gruppe(n) sind, werden nicht gelöscht, sind jedoch nicht mehr Mitglieder der gelöschten Gruppe(n).

Siehe auch
ADD USER-Anweisung | CREATE TABLE-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER TABLE-Anweisung | CREATE VIEW-Anweisung
CONSTRAINT-Klausel | DROP-Anweisung
CREATE INDEX-Anweisung | GRANT-Anweisung
CREATE PROCEDURE-Anweisung | REVOKE-Anweisung


ALTER TABLE-Anweisung (Microsoft Jet-SQL)

ALTER TABLE-Anweisung

Ändert den Entwurf einer Tabelle, nachdem diese mit der CREATE TABLE-Anweisung erstellt wurde.

Anmerkung Das Microsoft Jet-Datenbankmodul unterstützt die Verwendung von ALTER TABLE, oder einer der anderen DDL-Anweisungen (DDL = Data Definition Language) nicht für Datenbanken, die nicht auf dem Jet-Datenbankmodul basieren. Verwenden Sie stattdessen die Create-Methoden von DAO.

Syntax

ALTER TABLE Tabelle {ADD {COLUMN Feld Typ[(Größe)] [NOT NULL] [CONSTRAINT Index] |
ALTER COLUMN Feld Typ[(Größe)] |
CONSTRAINT Mehrfeldindex} |
DROP {COLUMN Feld I CONSTRAINT Indexname} }

Die ALTER TABLE-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Tabelle | Der Name der Tabelle, die geändert werden soll.
Feld | Der Name des Feldes, das zur Tabelle hinzugefügt oder daraus gelöscht werden soll. Oder der Name des Feldes, das in Tabelle geändert werden soll.
Typ | Der Datentyp von Feld.
Größe | Die Feldgröße in Anzahl an Zeichen (nur bei Feldern des Datentyps Text und Binary).
Index | Der Index für Feld. Weitere Informationen zum Erstellen dieses Indexes finden Sie unter CONSTRAINT-Klausel.
Mehrfelderindex | Die Definition eines Mehrfelderindexes, der zu Tabelle hinzugefügt werden soll. Weitere Informationen zum Erstellen dieses Indexes finden Sie unter CONSTRAINT-Klausel.
Indexname | Der Name des Mehrfelderindexes, der entfernt werden soll.

Hinweise

Mit der ALTER TABLE-Anweisung können Sie eine bereits vorhandene Tabelle auf mehrere Arten ändern: Beispielsweise:

  • Verwenden Sie ADD COLUMN, um ein neues Feld zur Tabelle hinzuzufügen. Sie geben den Feldnamen, den Datentyp und (für Text- und Binärfelder) optional die Größe an. Beispielsweise fügt die folgende Anweisung ein Textfeld der Tabelle "Personal" hinzu, das 25 Zeichen lang ist und den Namen "Anmerkungen" hat:

    ALTER TABLE Personal ADD COLUMN Anmerkungen TEXT(25)

    Sie können auf Basis dieses Feldes auch einen Index definieren. Weitere Informationen zu Einzelfeldindizes finden Sie unter CONSTRAINT-Klausel.

    Wenn Sie NOT NULL für ein Feld angeben, müssen die neuen Datensätze gültige Daten in dem Feld besitzen.

  • Verwenden Sie ALTER COLUMN, um den Datentyp eines vorhandenen Feldes zu ändern. Sie geben den Feldnamen, den neuen Datentyp und (für Text- und Binärfelder) optional die Größe an. Die folgende Anweisung ändert beispielsweise den Datentyp eines Feldes in der Angestelltentabelle namens PLZ (das ursprünglich als Ganzzahl definiert war) in ein Textfeld mit 10 Zeichen:

    ALTER TABLE Angestellte ALTER COLUMN Plz TEXT(10)

  • Verwenden Sie die ADD CONSTRAINT, um einen Mehrfelderindex hinzuzufügen. Weitere Informationen zu Mehrfelderindizes finden Sie unter CONSTRAINT-Klausel.
  • Verwenden Sie DROP COLUMN, um ein Feld zu löschen. Sie müssen lediglich den Namen des Feldes angeben.
  • Verwenden Sie die DROP CONSTRAINT, um einen Mehrfelderindex zu löschen. Geben Sie dazu den Namen des Indizes hinter dem reservierten Wort CONSTRAINT an.

Anmerkungen

  • Sie können immer nur jeweils ein Feld bzw. einen Index hinzufügen oder löschen.
  • Mit der CREATE INDEX-Anweisung können Sie sowohl einen einfachen als auch einen Mehrfelderindex zu einer Tabelle hinzufügen, und mit der ALTER TABLE- oder DROP-Anweisung können Sie Indizes löschen, die mit ALTER TABLE oder CREATE INDEX erstellt wurden.
  • Sie können NOT NULL für ein einzelnes Feld oder innerhalb einer benannten CONSTRAINT-Klausel, die entweder auf ein einzelnes Feld oder mehrere CONSTRAINT-Felder angewendet wird, verwenden. Sie können die NOT NULL-Einschränkung jedoch nur einmal auf ein Feld anwenden. Wenn Sie versuchen sollten, diese Einschränkung mehr als einmal anzuwenden, dann tritt ein Laufzeitfehler auf.
Siehe auch
ADD USER-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE VIEW-Anweisung
CONSTRAINT-Klausel | DROP-Anweisung
CREATE INDEX-Anweisung | DROP USER- oder GROUP-Anweisung
CREATE PROCEDURE-Anweisung | GRANT-Anweisung
CREATE TABLE-Anweisung | REVOKE-Anweisung

Beispiel

ALTER TABLE-Anweisung (Beispiel)


ALTER USER- oder DATABASE-Anweisung (Microsoft Jet-SQL)

ALTER USER- oder DATABASE-Anweisung

Ändert das Kennwort eines vorhandenen Benutzers oder einer Datenbank.

Syntax

ALTER DATABASE PASSWORD NeuesKennwort AltesKennwort

ALTER USER Benutzer PASSWORD NeuesKennwort AltesKennwort

Die ALTER USER- oder DATABASE-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Benutzer | Der Name eines Benutzers, der zur Informationsdatei für Arbeitsgruppen hinzugefügt werden soll.
NeuesKennwort | Das neue Kennwort, das dem angegebenen Benutzer- oder Datenbanknamen zugeordnet werden soll.
AltesKennwort | Das vorhandene Kennwort, das dem angegebenen Benutzer- oder Datenbanknamen zugeordnet werden soll.

Siehe auch
ADD USER-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER TABLE-Anweisung | CREATE VIEW-Anweisung
CONSTRAINT-Klausel | DROP-Anweisung
CREATE INDEX-Anweisung | DROP USER- oder GROUP-Anweisung
CREATE PROCEDURE-Anweisung | GRANT-Anweisung
CREATE TABLE-Anweisung | REVOKE-Anweisung


CONSTRAINT-Abschnitt (Microsoft Jet-SQL)

CONSTRAINT-Klausel

Eine Einschränkung ähnelt einem Index, obwohl sie auch verwendet werden kann, um eine Beziehung mit einer anderen Tabelle herzustellen.

Sie können die CONSTRAINT-Klausel in ALTER TABLE- und CREATE TABLE-Anweisungen verwenden, um Einschränkungen zu erstellen oder zu löschen. Es gibt zwei Typen von CONSTRAINT-Klauseln: einen Typ, um eine Einschränkung für ein einzelnes Feld zu definieren, und einen Typ, um eine Einschränkung für mehrere Felder zu definieren.

Anmerkung Das Microsoft Jet-Datenbankmodul unterstützt die Verwendung von CONSTRAINT oder einer anderen der DDL-Anweisungen (DDL = Data Definition Language) nicht für Datenbanken, die nicht auf dem Jet-Datenbankmodul basieren. Verwenden Sie stattdessen die Create-Methoden für Datenzugriffsobjekte.

Syntax

Einzelfeldeinschränkung:

CONSTRAINT Name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES FremdTabelle [(FremdFeld1, FremdFeld2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]

Mehrfeldereinschränkung:

CONSTRAINT Name
{PRIMARY KEY (Primär1[,Primär2[, ...]]) |
UNIQUE (Eindeutig1[,Eindeutig2[, ...]]) |
NOT NULL (Nichtnull1[, Nichtnull2 [, ...]]) |
FOREIGN KEY [NO INDEX] (Ref1[, Ref2 [, ...]]) REFERENCES FremdTabelle [(FremdFeld1 [, FremdFeld2 [, ...]])]}
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]

Die CONSTRAINT-Klausel besteht aus folgenden Teilen:

Teil | Beschreibung
Name | Der Name der zu erstellenden Einschränkung.
Primär1, Primär2 | Der Name des im Primärschlüssel zu definierenden Feldes bzw. der zu benennenden Felder.
Eindeutig1, Eindeutig2 | Die Namen der Felder, die als eindeutiger Schlüssel definiert werden sollen.
Nichtnull1, Nichtnull2 | Die Namen der Felder, die auf Nicht-Null-Werte eingeschränkt sind.
Ref1, Ref2 | Der Name eines oder mehrerer Fremdschlüsselfelder, die auf Felder in einer Fremdtabelle verweisen.
FremdTabelle | Der Name der Fremdtabelle die das oder die durch FremdFeld angegebenen Felder enthält.
FremdFeld1, FremdFeld2 | Die Namen des Feldes oder der Felder in FremdTabelle, die durch Ref1, Ref2 usw. angegeben sind. Sie können auf Angabe dieses Abschnitts verzichten, wenn das referenzierte Feld der Primärschlüssel von FremdTabelle ist.

Hinweise

Die Syntax für einen Einzelfeldindex verwenden Sie innerhalb des Felddefinitionsabschnitts einer ALTER TABLE- oder CREATE TABLE-Anweisung unmittelbar hinter der Angabe des Felddatentyps.

Die Syntax für einen Mehrfelderindex verwenden Sie immer dann, wenn Sie das reservierte Wort CONSTRAINT außerhalb eines Felddefinitionsabschnitts in einer ALTER TABLE- oder CREATE TABLE-Anweisung verwenden.

Mit CONSTRAINT können Sie ein Feld angeben, das eine der folgenden Arten von Einschränkungen definiert:

  • Sie können das reservierte Wort UNIQUE verwenden, um ein Feld als eindeutigen Schlüssel festzulegen. Das heißt, dass kein in diesem Feld stehender Wert innerhalb der Datensätze der jeweiligen Tabelle mehrfach vorkommen darf. Sie können jedes Feld bzw. jede Feldliste auf eindeutige Werte einschränken. Ist ein Mehrfelderindex als eindeutiger Schlüssel festgelegt, so müssen die kombinierten Werte aller Indexfelder selbst dann eindeutig sein, wenn zwei oder mehr Datensätze in nur einem dieser Felder denselben Wert enthalten.
  • Sie können die reservierten Wörter PRIMARY KEY verwenden, um ein Feld oder mehrere Felder einer Tabelle als Primärschlüssel festzulegen. Alle zum Primärschlüssel gehörenden Werte müssen eindeutig und ungleich Null sein, und eine Tabelle kann immer nur einen Primärschlüssel haben.

    Anmerkung Legen Sie für eine Tabelle, die bereits einen Primärschlüssel besitzt, keine PRIMARY KEY-Einschränkung fest, da dies einen Fehler verursacht.

  • Sie können die reservierten Wörter FOREIGN KEY verwenden, um ein Feld als Fremdschlüssel festzulegen. Besteht der Primärschlüssel der Fremdtabelle aus mehreren Feldern, so müssen Sie eine Mehrfelderbeschränkungsdefinition verwenden, in der die referenzierenden Felder, der Name der Fremdtabelle sowie die Namen der referenzierten Felder der Fremdtabelle aufgeführt sind. Letztere müssen dabei in derselben Reihenfolge angegeben sein, in der die referenzierenden Felder angegeben sind. Wenn das referenzierte Feld bzw. die referenzierten Felder der Primärschlüssel der Fremdtabelle sind, brauchen Sie die referenzierten Felder nicht anzugeben. Standardmäßig verhält sich das Datenbankmodul so, als wären die referenzierten Felder der Primärschlüssel die Fremdtabelle.

    Fremdschlüsseleinschränkungen definieren, dass bestimmte Aktionen ausgeführt werden, wenn der entsprechende Primärschlüsselwert geändert wird.

  • Sie können auf der Grundlage einer entsprechenden Aktion, die für den Primärschlüssel in einer Tabelle durchgeführt wird, für die CONSTRAINT definiert ist, Aktionen angeben, die in der Fremdtabelle durchgeführt werden sollen. Sehen Sie sich beispielsweise die folgende Definition für die Tabelle KUNDEN an:

    CREATE TABLE Kunden (KundId INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))

    Sehen Sie sich die Definition der Tabelle BESTELL an, die eine Fremdschlüsselbeziehung definiert, die den Primärschlüssel der Tabelle KUNDEN referenziert:

    CREATE TABLE Bestell (BestellId INTEGER PRIMARY KEY, KundId INTEGER, BestellNotiz NCHAR VARYING (255), CONSTRAINT FKBestellKundId FOREIGN KEY (KundId) REFERENCES Kunden ON UPDATE CASCADE ON DELETE CASCADE

    Sowohl eine ON UPDATE CASCADE- als auch ein ON DELETE CASCADE-Klausel sind für den Fremdschlüssel definiert. Die ON UPDATE CASCADE-Klausel bewirkt, dass beim Aktualisieren der ID eines Kunden (KundId) in der Tabelle KUNDEN die Aktualisierung durch die Tabelle BESTELL weitergegeben wird. Jede Bestellung, die einen entsprechenden Kunden-ID-Wert enthält, wird automatisch durch den neuen Wert aktualisiert. Die ON DELETE CASCADE-Klausel bewirkt, dass beim Löschen eines Kunden aus der Tabelle KUNDEN alle Zeilen der Tabelle BESTELL, die den gleichen Kunden-ID-Wert enthalten, ebenfalls gelöscht werden.

    Sehen Sie sich die folgende abweichende Definition der Tabelle BESTELL an, die die SET NULL-Aktion anstelle der CASCADE-Aktion verwendet:

    CREATE TABLE Bestell (BestellId INTEGER PRIMARY KEY, KundId INTEGER, BestellNotiz NCHAR VARYING (255), CONSTRAINT FKBestellKundId FOREIGN KEY (KundId) REFERENCES Kunden ON UPDATE SET NULL ON DELETE SET NULL

    Die ON UPDATE SET NULL-Klausel bewirkt, dass beim Aktualisieren der ID eines Kunden (KundId) in der Tabelle KUNDEN die entsprechenden Fremdschlüsselwerte in der Tabelle BESTELL automatisch auf NULL gesetzt werden. Die ON DELETE SET NULL-Klausel bewirkt analog, dass beim Löschen eines Kunden aus der Tabelle KUNDEN alle entsprechenden Fremdschlüssel in der Tabelle BESTELL automatisch auf NULL gesetzt werden.

Um das automatische Erstellen von Indizes für Fremdschlüssel zu verhindern, kann das Element NO INDEX verwendet werden. Diese Form der Definition von Fremdschlüsseln sollte nur dann verwendet werden, wenn die sich ergebenden Indexwerte fortwährend dupliziert würden. Wenn die Werte in einem Fremdschlüsselindex regelmäßig dupliziert werden, kann die Verwendung eines Indexes weniger effizient als das einfache Durchsuchen einer Tabelle sein. Wenn dieser Typ von Index verwaltet werden muss, während Zeilen in die Tabelle eingefügt und aus ihr gelöscht werden, wird nur die Leistung verschlechtert, und es entstehen keinerlei Vorteile.

Siehe auch
ADD USER-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE VIEW-Anweisung
ALTER TABLE-Anweisung | DROP-Anweisung
CREATE INDEX-Anweisung | DROP USER- oder GROUP-Anweisung
CREATE PROCEDURE-Anweisung | GRANT-Anweisung
CREATE TABLE-Anweisung | REVOKE-Anweisung

Beispiel

CREATE TABLE-Anweisung, CONSTRAINT-Klausel (Beispiel)


DROP-Anweisung (Microsoft Jet-SQL)

DROP-Anweisung

Löscht eine bestehende Tabelle, Prozedur oder Ansicht aus einer Datenbank oder einen bestehenden Index aus einer Tabelle.

Anmerkung Das Microsoft Jet-Datenbankmodul unterstützt die Verwendung von DROP oder einer der anderen DDL-Anweisungen (DDL = Data Definition Language) nicht für Datenbanken, die nicht auf Jet basieren. Verwenden Sie stattdessen die DAO Delete-Methode.

Syntax

DROP {TABLE Tabelle | INDEX Index ON Tabelle | PROCEDURE Prozedur | VIEW Ansicht}

Die DROP-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Tabelle | Der Name der Tabelle, die gelöscht werden soll, oder der Tabelle, aus der ein Index gelöscht werden soll.
Prozedur | Der Name der Prozedur, die gelöscht werden soll.
Ansicht | Der Name der Ansicht, die gelöscht werden soll.
Index | Der Name des Indexes, der aus Tabelle gelöscht werden soll.

Hinweise

Sie müssen die Tabelle schließen, bevor Sie sie löschen oder einen Index daraus entfernen können.

Sie können einen Index auch mit der ALTER TABLE-Anweisung aus einer Tabelle löschen.

Sie können CREATE TABLE zum Erstellen einer Tabelle und CREATE INDEX oder ALTER TABLE zum Erstellen eines Indexes verwenden. Zum Ändern einer Tabelle verwenden Sie ALTER TABLE.

Siehe auch
ADD USER-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE TABLE-Anweisung
ALTER TABLE-Anweisung | CREATE VIEW-Anweisung
CONSTRAINT-Klausel | DROP USER- oder GROUP-Anweisung
CREATE INDEX-Anweisung | GRANT-Anweisung
CREATE PROCEDURE-Anweisung | REVOKE-Anweisung

Beispiel

DROP-Anweisung (Beispiel)


GRANT-Anweisung (Microsoft Jet-SQL)

GRANT-Anweisung

Gewährt einem vorhandenen Benutzer oder einer Gruppe bestimmte Berechtigungen.

Syntax

GRANT { Berechtigung[, Berechtigung, …]} ON
{TABLE Tabelle |
OBJECT Objekt |

CONTAINER Container } TO {Autorisierungsname[, Autorisierungsname, …]}

Die GRANT-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Berechtigung | Die Berechtigung oder Berechtigungen, die gewährt werden soll(en). Berechtigungen werden mit den folgenden Schlüsselwörtern festgelegt: SELECT, DELETE, INSERT, UPDATE, DROP, SELECTSECURITY, UPDATESECURITY, DBPASSWORD, UPDATEIDENTITY, CREATE, SELECTSCHEMA, SCHEMA und UPDATEOWNER.
Tabellenname | Ein gültiger Tabellenname.
Objekt | Dies kann jedes Nicht-Tabellenobjekt umfassen. Eine gespeicherte Abfrage (Ansicht oder Prozedur) ist hierfür ein Beispiel.
Container | Der Name eines gültigen Containers.
Autorisierungsname | Der Name eines Benutzers oder einer Gruppe.

Siehe auch
ADD USER-Anweisung | CREATE TABLE-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER TABLE-Anweisung | CREATE VIEW-Anweisung
CONSTRAINT-Klausel | DROP-Anweisung
CREATE INDEX-Anweisung | DROP USER- oder GROUP-Anweisung
CREATE PROCEDURE-Anweisung | REVOKE-Anweisung


REVOKE-Anweisung (Microsoft Jet-SQL)

REVOKE-Anweisung

Erkennt einem vorhandenen Benutzer oder einer Gruppe bestimmte Berechtigungen ab.

Syntax

REVOKE { Berechtigung[, Berechtigung, …]} ON
{TABLE Tabelle |
OBJECT Objekt|

CONTAINER Container }
FROM {Autorisierungsname[, Autorisierungsname, …]}

Die REVOKE-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Berechtigung | Die Berechtigung oder Berechtigungen, die aberkannt werden soll(en). Berechtigungen werden mit den folgenden Schlüsselwörtern festgelegt: SELECT, DELETE, INSERT, UPDATE, DROP, SELECTSECURITY, UPDATESECURITY, DBPASSWORD, UPDATEIDENTITY, CREATE, SELECTSCHEMA, SCHEMA und UPDATEOWNER.
Tabelle | Ein gültiger Tabellenname.
Objekt | Dies kann jedes Nicht-Tabellenobjekt umfassen. Eine gespeicherte Abfrage (Ansicht oder Prozedur) ist hierfür ein Beispiel.
Container | Der Name eines gültigen Containers.
Autorisierungsname | Der Name eines Benutzers oder einer Gruppe.

Siehe auch
ADD USER-Anweisung | CREATE TABLE-Anweisung
ALTER USER- oder DATABASE-Anweisung | CREATE USER- oder GROUP-Anweisung
ALTER TABLE-Anweisung | CREATE VIEW-Anweisung
CONSTRAINT-Klausel | DROP-Anweisung
CREATE INDEX-Anweisung | DROP USER- oder GROUP-Anweisung
CREATE PROCEDURE-Anweisung | GRANT-Anweisung


SELECT-Anweisung (Microsoft Jet-SQL)

SELECT-Anweisung

Weist das Microsoft Jet-Datenbankmodul an, Informationen aus der Datenbank als Gruppe von Datensätzen zurückzugeben.

Syntax

SELECT [Prädikat] { * | Tabelle.* | [Tabelle.]Feld1 [AS Alias1] [, [Tabelle.]Feld2 [AS Alias2] [, ...]]}
FROM Tabellenausdruck [, ...] [IN ExterneDatenbank]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]

Die SELECT-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Prädikat | Eines der folgenden Prädikate: ALL, DISTINCT, DISTINCTROW, oder TOP. Mit dem Prädikat schränken Sie die Anzahl der zurückgegebenen Datensätze ein. Wurde kein Prädikat angegeben, so ist die Standardeinstellung ALL.
* | Gibt an, dass alle Felder aus den angegebenen Tabellen ausgewählt werden.
Tabelle | Der Name der Tabelle, aus der Datensätze ausgewählt werden.
Feld1, Feld2 | Die Namen der Felder, die die Daten enthalten, die Sie abrufen möchten. Wenn Sie mehrere Felder angeben, werden diese in der angegebenen Reihenfolge abgerufen.
Alias1, Alias2 | Die Namen, die anstelle der ursprünglichen Spaltennamen als Spaltenköpfe in Tabelle verwendet werden.
Tabellenausdruck | Der Name der Tabelle(n) mit den Daten, die abgerufen werden sollen.
ExterneDatenbank | Der Name der Datenbank mit den in Tabellenausdruck angegebenen Tabellen, sofern sich die Tabellen nicht in der aktuellen Datenbank befinden.

Bemerkungen

Zum Durchführen dieser Operation durchsucht das Microsoft Jet-Datenbankmodul die angegebene(n) Tabelle(n), liest die gewählten Spalten, wählt die Zeilen aus, die die Kriterien erfüllen, und sortiert oder gruppiert die Ergebniszeilen in der angegebenen Reihenfolge.

SELECT-Anweisungen ändern die Daten in der Datenbank nicht.

SELECT ist in der Regel das erste Wort einer SQL-Anweisung. Die meisten SQL-Anweisungen sind entweder SELECT- oder SELECT...INTO-Anweisungen.

Die minimal erforderliche Syntax für eine SELECT-Anweisung ist:

SELECT Felder FROM Tabelle

Sie können ein Sternchen (*) verwenden, um alle Felder einer Tabelle auszuwählen. Im folgenden Beispiel werden alle Felder in der Tabelle "Personal" ausgewählt:

SELECT * FROM Personal;

Wenn ein Feldname in der FROM-Klausel mehrerer Tabellen enthalten ist, stellen Sie ihr den Tabellennamen und den . (Punkt)-Operator voran. Im folgenden Beispiel enthält sowohl die Tabelle "Personal" als auch die Tabelle "Vorgesetzte" das Feld "Abteilung". Die SQL-Anweisung wählt das Feld "Abteilung" aus der Tabelle "Personal" und das Feld "VorgName" aus der Tabelle "Vorgesetzte" aus:

SELECT Personal.[Abteilung], Vorgesetzte.[VorgName]

FROM Personal INNER JOIN Vorgesetzte

WHERE Personal.[Abteilung] = Vorgesetzte.[Abteilung];

Wenn ein Recordset-Objekt erstellt wird, verwendet das Microsoft Jet-Datenbankmodul den Feldnamen der Tabelle als Namen des Field-Objekts im Recordset-Objekt. Möchten Sie einen anderen Feldnamen, oder wird der Name nicht durch den Ausdruck, der zum Erstellen des Feldes verwendet wurde, impliziert, dann verwenden Sie das reservierte Wort AS. Im folgenden Beispiel wird der Titel "Geburtstag" verwendet, um das zurückgegebene Field-Objekt im Recordset-Objekt zu bezeichnen:

SELECT [Geburtsdatum]

AS Geburtstag FROM Personal;

Sobald Sie Aggregatfunktionen oder Abfragen verwenden, die nicht eindeutige oder mehrfach vorkommende Namen für Field-Objekte zurückgeben, müssen Sie die AS-Klausel verwenden, um einen alternativen Namen für das Field-Objekt zur Verfügung zu stellen. Im folgenden Beispiel wird der Titel "Personalstärke" verwendet, um das zurückgegebene Field-Objekt im Recordset-Objekt zu bezeichnen:

SELECT COUNT([Personal-Nr])

AS Personalstärke FROM Personal;

Sie können die anderen Klauseln in einer SELECT-Anweisung verwenden, um die zurückgegebenen Daten weiter einzuschränken und zu organisieren. Weitere Informationen finden Sie in der Beschreibung der entsprechenden Klausel in der Hilfe.

Siehe auch
Prädikate ALL DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | ORDER BY-Klausel (Microsoft Jet SQL)
DELETE-Anweisung (Microsoft Jet SQL) | SELECT...INTO-Anweisung (Microsoft Jet SQL)
FROM-Klausel (Microsoft Jet SQL) | SQL Aggregatfunktionen (SQL)
GROUP BY-Klausel (Microsoft Jet SQL) | UNION-Operation (Microsoft Jet SQL)
HAVING-Klausel (Microsoft Jet SQL) | UPDATE-Anweisung (Microsoft Jet SQL)
IN-Klausel (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)
INSERT INTO-Anweisung (Microsoft Jet SQL) | WITH OWNERACCESS OPTION-Deklaration (Microsoft Jet SQL)

Beispiel

SELECT-Anweisung, FROM-Klausel (Beispiel)


SELECT...INTO-Anweisung (Microsoft Jet-SQL)

SELECT...INTO-Anweisung

Erzeugt eine Tabellenerstellungsabfrage.

Syntax

SELECT Feld1[, Feld2[, ...]] INTO NeueTabelle [IN ExterneDatenbank]
FROM Quelle

Die SELECT...INTO-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Feld1, Feld2 | Die Namen der Felder, die in die neue Tabelle kopiert werden sollen.
NeueTabelle | Der Name der Tabelle, die erstellt werden soll. Er muss Standard-Namenskonventionen folgen. Wenn der mit NeueTabelle vergebene Name mit dem einer bereits bestehenden Tabelle übereinstimmt, tritt ein auffangbarer Fehler auf.
ExterneDatenbank | Der Pfad zu einer externen Datenbank. Eine Beschreibung des Pfades finden Sie in der Beschreibung zur IN-Klausel.
Quelle | Der Name der bestehenden Tabelle, aus der Datensätze ausgewählt werden. Es kann sich um eine einzelne Tabelle, um mehrere Tabellen oder um eine Abfrage handeln.

Bemerkungen

Sie verwenden Tabellenerstellungsabfragen zum Archivieren von Datensätzen, zum Erstellen von Sicherungskopien der Tabellen oder zum Erstellen von Kopien, die in eine andere Datenbank exportiert werden. Sie können solche Abfragen auch als Grundlage für Berichte verwenden, die Daten aus einem bestimmten Zeitraum anzeigen. Sie könnten z. B. einen Bericht mit dem Namen "Monatsumsätze nach Gebieten" erstellen, indem Sie dieselbe Tabellenerstellungsabfrage jeden Monat ausführen.

Anmerkungen

  • Sie sollten einen Primärschlüssel für die neue Tabelle definieren. Wenn Sie die Tabelle erstellen, übernehmen die Felder in der neuen Tabelle den Datentyp und die Feldgröße aller Felder aus den Tabellen, die der Abfrage zugrunde liegen. Alle anderen Feld- oder Tabelleneigenschaften werden jedoch nicht übertragen.
  • Sie können einer bestehenden Tabelle Daten hinzufügen, indem Sie die INSERT INTO-Anweisung anstelle einer Anfügeabfrage verwenden.
  • Sie können vor Ausführung der Tabellenerstellungsabfrage feststellen, welche Datensätze ausgewählt werden, indem Sie zuerst die Ergebnisse einer SELECT-Anweisung untersuchen, in der dieselben Auswahlkriterien verwendet werden.
Siehe auch
Prädikate ALL, DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
FROM-Klausel (Microsoft Jet SQL) | UNION-Operation (Microsoft Jet SQL)
IN-Klausel (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)
INSERT INTO-Anweisung (Microsoft Jet SQL) |

Beispiel

SELECT...INTO-Anweisung (Beispiel)


INSERT INTO-Anweisung (Microsoft Jet-SQL)

INSERT INTO-Anweisung

Fügt einer Tabelle einen oder mehrere Datensätze hinzu. Eine derartige Abfrage wird als Anfügeabfrage bezeichnet.

Syntax

Abfrage zum Anfügen mehrerer Datensätze:

INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]])] [IN ExterneDatenbank]
SELECT [Quelle.]Feld1[, Feld2[, ...]
FROM Tabellenausdruck

Abfrage zum Anfügen eines einzelnen Datensatzes:

INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]])]
VALUES (Wert1[, Wert2[, ...])

Die INSERT INTO-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Ziel | Der Name der Tabelle oder Abfrage, an die Datensätze angefügt werden sollen.
Feld1, Feld2 | Namen der Felder, an die Daten angefügt werden sollen, wenn diese einem Argument Ziel folgen, oder die Namen der Felder, aus denen Daten gelesen werden sollen, wenn diese einem Argument Quelle folgen.
ExterneDatenbank | Der Pfad zu einer externen Datenbank. Eine Beschreibung des Pfades finden Sie in der Beschreibung zur IN-Klausel.
Quelle | Der Name der Tabelle oder Abfrage, aus der Datensätze kopiert werden sollen.
Tabellenausdruck | Der Name der Tabelle(n), aus der oder denen Datensätze eingefügt werden. Das Argument kann ein einzelner Tabellenname sein oder ein zusammengesetzter Name, der sich aus einer Verknüpfung (INNER JOIN LEFT JOIN, oder RIGHT JOIN) oder aus einer gespeicherten Abfrage ergibt.
Wert1, Wert2 | Die Werte, die in bestimmte Felder des neuen Datensatzes eingefügt werden sollen. Jeder Wert wird in das Feld eingefügt, das der Position des Wertes in der Liste entspricht: Wert1 wird in Feld1 des neuen Datensatzes eingetragen, Wert2 in Feld2 usw. Sie müssen alle Werte in Apostrophe (' ') einschließen und die Werte durch Kommas voneinander trennen.

Bemerkungen

Mit der INSERT INTO-Anweisung können Sie einer Tabelle einen einzelnen Datensatz hinzufügen, indem Sie die Syntax zum Anfügen einzelner Datensätze verwenden (siehe oben). In diesem Fall gibt Ihr Code den Namen und Wert für alle Felder des Datensatzes an. Sie müssen alle Felder des Datensatzes, denen ein Wert zugewiesen werden soll, und jeweils einen Wert für diese Felder angeben. Wenn Sie nicht alle Felder angeben, wird für fehlende Spalten der Standardwert oder Null eingefügt. Datensätze werden am Ende der Tabelle angefügt.

Sie können auch INSERT INTO verwenden, um eine Gruppe von Datensätzen aus einer anderen Tabelle oder Abfrage mit der SELECT...FROM-Klausel anzufügen, wie oben in der Syntax zum Anfügen mehrerer Datensätze beschrieben. In diesem Fall gibt die SELECT-Klausel die Felder an, die an die angegebene Tabelle Ziel angefügt werden sollen.

Als Quell- oder Zieltabelle (Quelle oder Ziel) kann eine Tabelle oder eine Abfrage angegeben werden. Wird eine Abfrage angegeben, dann fügt das Microsoft Jet-Datenbankmodul Datensätze an alle beliebigen und alle Tabellen an, die in der Abfrage angegeben sind.

INSERT INTO ist optional, steht jedoch vor der SELECT-Anweisung, wenn es verwendet wird.

Wenn die Zieltabelle einen Primärschlüssel enthält, müssen Sie für das Primärschlüsselfeld (oder die Primärschlüsselfelder) eindeutige Werte ungleich Null anfügen. Andernfalls fügt das Microsoft Jet-Datenbankmodul die Datensätze nicht an.

Wenn Sie Datensätze zu einer Tabelle mit einem Autowert-Feld hinzufügen und die angehängten Datensätze neu nummerieren möchten, schließen Sie das Autowert-Feld nicht in Ihre Abfrage ein. Geben Sie das Autowert-Feld in der Abfrage an, wenn die ursprünglichen Werte aus dem Feld beibehalten werden sollen.

Verwenden Sie die IN-Klausel, um Datensätze an eine Tabelle in einer anderen Datenbank anzufügen.

Sie können eine neue Tabelle erzeugen, indem Sie statt dessen die SELECT...INTO-Anweisung verwenden, um eine Tabellenerstellungsabfrage zu erstellen.

Sie können vor dem Ausführen der Anfügeabfrage feststellen, welche Datensätze angefügt werden, indem Sie zuerst eine Auswahlabfrage ausführen, die dieselben Auswahlkriterien verwendet, und sich die Ergebnisse ansehen.

Eine Anfügeabfrage kopiert Datensätze aus einer oder mehreren Tabellen in eine andere Tabelle. Die Anfügeabfrage hat keine Auswirkung auf die Tabellen, die die anzufügenden Datensätze enthalten.

Anstatt existierende Datensätze aus einer anderen Tabelle anzufügen, können Sie den Wert für jedes Feld in einem einzelnen neuen Datensatz mit der VALUES-Klausel angeben. Wenn Sie keine Feldliste angeben, muss die VALUES-Klausel für alle Felder der Tabelle einen Wert enthalten, da ansonsten die INSERT-Operation nicht ausgeführt werden kann. Verwenden Sie für alle weiteren zu erstellenden Datensätze jeweils eine weitere INSERT INTO-Anweisung mit einer VALUES-Klausel.

Siehe auch
FROM-Klausel (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
IN-Klausel (Microsoft Jet SQL) | SELECT...INTO-Anweisung (Microsoft Jet SQL)
INNER JOIN-Operation (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)
Operationen LEFT JOIN, RIGHT JOIN (Microsoft Jet SQL) |

Beispiel

INSERT INTO-Anweisung (Beispiel)


UPDATE-Anweisung (Microsoft Jet-SQL)

UPDATE-Anweisung

Erstellt eine Aktualisierungsabfrage, die Werte in Feldern einer angegebenen Tabelle aufgrund angegebener Kriterien ändert.

Syntax

UPDATE Tabelle
SET NeuerWert
WHERE Kriterien

Die UPDATE-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Tabelle | Der Name der Tabelle, deren Daten geändert werden sollen.
NeuerWert | Ein Ausdruck, der den Wert angibt, der in einem bestimmten Feld in den aktualisierten Datensätzen eingefügt werden soll.
Kriterien | Ein Ausdruck, der festlegt, welche Datensätze aktualisiert werden. Es werden nur Datensätze aktualisiert, die die im Ausdruck angegebene Bedingung erfüllen.

Bemerkungen

UPDATE ist besonders hilfreich, wenn viele Datensätze geändert werden sollen oder wenn die zu ändernden Datensätze aus mehreren Tabellen stammen.

Sie können mehrere Felder gleichzeitig ändern. Im folgenden Beispiel werden die Werte für das Feld "Bestellmenge" um 10 Prozent und die Werte für das Feld "Fracht" für Lieferungen in die USA um 3 Prozent erhöht:

UPDATE Bestellungen

SET Bestellmenge = Bestellmenge * 1.1,

Fracht = Fracht * 1.03

WHERE Bestimmungsland = 'USA';

Wichtig

  • UPDATE erzeugt keine Ergebnismenge. Wenn Sie einen Datensatz aktualisiert haben, kann die Operation nicht rückgängig gemacht werden. Sie können herausfinden, welche Datensätze aktualisiert werden, indem Sie zuerst die Ergebnisse einer Auswahlabfrage untersuchen, die dieselben Auswahlkriterien verwendet, und anschließend die Aktualisierungsabfrage ausführen.
  • Erstellen Sie regelmäßig Sicherungskopien Ihrer Daten. Wenn Sie einen falschen Datensatz aktualisieren, können Sie diesen mit Hilfe der Sicherungskopien wiederherstellen.
Siehe auch
SELECT-Anweisung (Microsoft Jet SQL) WHERE-Klausel (Microsoft Jet SQL)

Beispiel

UPDATE-Anweisung (Beispiel)


DELETE-Anweisung (Microsoft Jet-SQL)

DELETE-Anweisung

Erstellt eine Löschabfrage, die Datensätze aus einer oder mehreren der in der FROM-Klausel aufgeführten Tabellen löscht, sofern diese die in der WHERE-Klausel angegebene Bedingung erfüllen.

Syntax

DELETE [Tabelle.*]
FROM Tabelle
WHERE Kriterien

Die DELETE-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Tabelle | Der optionale Name der Tabelle, aus der Datensätze gelöscht werden.
Tabelle | Der Name der Tabelle, aus der Datensätze gelöscht werden.
Kriterien | Ein Ausdruck, der bestimmt, welche Datensätze gelöscht werden sollen.

Bemerkungen

DELETE ist besonders hilfreich, wenn viele Datensätze gelöscht werden sollen.

Wenn Sie alle Datensätze in einer Tabelle löschen möchten, können Sie die Execute-Methode zusammen mit einer DROP-Anweisung verwenden. Wenn Sie die Tabelle löschen, geht allerdings die Tabellenstruktur verloren. Im Gegensatz dazu werden durch DELETE nur die Daten gelöscht. Die Tabellenstruktur und alle Tabelleneigenschaften (z. B. Feldattribute und Indizes) bleiben erhalten.

Mit DELETE können Sie Datensätze aus Tabellen entfernen, die in einer 1:n-Beziehung zu anderen Tabellen stehen. Operationen mit Löschweitergabe (Kaskadierendes Löschen) löschen zusätzlich die Datensätze auf der n-Seite einer Beziehung, die mit dem Datensatz auf der 1-Seite, der durch die Abfrage gelöscht wird, in Beziehung stehen. In der Beziehung zwischen den Tabellen "Kunden" und "Bestellungen" steht die Tabelle "Kunden" z. B. auf der 1-Seite und die Tabelle "Bestellungen" auf der n-Seite der Beziehung. Das Löschen eines Datensatzes aus "Kunden" führt dazu, dass die entsprechenden Datensätze aus "Bestellungen" gelöscht werden, wenn die Löschweitergabe (Kaskadierendes Löschen) aktiviert ist.

Eine Löschabfrage löscht ganze Datensätze, nicht nur Daten in bestimmten Feldern. Wenn Sie Werte in bestimmten Feldern löschen möchten, müssen Sie eine Aktualisierungsabfrage erstellen, die die Werte auf Null setzt.

Wichtig

  • Das Löschen von Datensätzen mit einer Löschabfrage kann nicht rückgängig gemacht werden. Wenn Sie wissen möchten, welche Datensätze gelöscht werden, überprüfen Sie zuerst die Ergebnisse einer Auswahlabfrage, die dieselben Kriterien verwendet, und führen Sie anschließend die Löschabfrage durch.
  • Erstellen Sie regelmäßig Sicherungskopien Ihrer Daten. Wenn Sie die falschen Datensätze gelöscht haben, können Sie diese aus den Sicherungskopien wiederherstellen.
Siehe auch
DROP-Anweisung (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
FROM-Klausel (Microsoft Jet SQL) | UPDATE-Anweisung (Microsoft Jet SQL)
IN-Klausel (Microsoft Jet SQL) | WHERE-Anweisung (Microsoft Jet SQL)
INNER JOIN-Operation (Microsoft Jet SQL) |

Beispiel

DELETE-Anweisung (Beispiel)


EXECUTE-Anweisung (Microsoft Jet-SQL)

EXECUTE-Anweisung

Wird verwendet, um die Ausführung einer Prozedur zu veranlassen.

Syntax

EXECUTE Prozedur [Param1[, Param2[, ...]]

Die EXECUTE-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
Prozedur | Der Name der Prozedur, die ausgeführt werden soll.
Param1, Param2, … | Werte für die Parameter, die von der Prozedur definiert werden.

Siehe auch
PARAMETERS-Deklaration (Microsoft Jet SQL) PROCEDURE-Klausel (Microsoft Jet SQL)

Beispiel

CREATE PROCEDURE-Anweisung, PROCEDURE-Klausel (Beispiel)


TRANSACTION-Anweisung (Microsoft Jet-SQL)

TRANSACTION-Anweisung

Wird verwendet, um ausdrückliche Transaktionen einzuleiten und durchzuführen.

Syntax

Einleiten einer neuen Transaktion.

BEGIN TRANSACTION

Abschließen einer Transaktion durch Übernehmen aller Aktionen, die während der Transaktion durchgeführt wurden.

COMMIT [TRANSACTION | WORK]

Abschließen einer Transaktion durch Zurücksetzen (Rollback) aller Aktionen, die während der Transaktion durchgeführt wurden.

ROLLBACK [TRANSACTION | WORK]

Bemerkungen

Transaktionen werden nicht automatisch gestartet. Um eine Transaktion zu starten, müssen Sie diese ausdrücklich durch BEGIN TRANSACTION einleiten.

Transaktionen können bis zu fünf Ebenen tief verschachtelt sein. Um eine verschachtelte Transaktion zu starten, verwenden Sie BEGIN TRANSACTION im Kontext einer bestehenden Transaktion.

Transaktionen werden für verknüpfte Tabellen nicht unterstützt.


TRANSFORM-Anweisung (Microsoft Jet-SQL)

TRANSFORM-Anweisung

Erzeugt eine Kreuztabellenabfrage.

Syntax

TRANSFORM AggFunktion
Auswahlanweisung
PIVOT Pivot-Feld [IN (Wert1[, Wert2[, ...]])]

Die TRANSFORM-Anweisung besteht aus folgenden Teilen:

Teil | Beschreibung
AggFunktion | Eine SQL-Aggregatfunktion, die Operationen auf den ausgewählten Daten ausführt.
Auswahlanweisung | Eine SELECT-Anweisung.
Pivot-Feld | Das Feld oder der Ausdruck, mit dem Spaltenüberschriften in der Ergebnismenge der Abfrage erstellt werden sollen.
Wert1, Wert2 | Feststehende Werte, die als Spaltenüberschriften verwendet werden.

Bemerkungen

Wenn Sie Daten mit einer Kreuztabellenabfrage zusammenfassen, wählen Sie Werte aus angegebenen Feldern oder Ausdrücken als Spaltenüberschriften aus, damit Sie die Daten in einem kompakteren Format ausgeben können als mit einer Auswahlabfrage.

Die TRANSFORM-Anweisung ist optional, ist jedoch die erste Anweisung in einer SQL-Zeichenfolge, wenn sie angegeben wird. TRANSFORM geht einer SELECT-Anweisung voraus, die die als Spaltenüberschriften verwendeten Felder angibt, und einer GROUP BY-Klausel, die die Zeilengruppierung angibt. Optional können Sie andere Klauseln wie WHERE einschließen, die weitere Auswahl- oder Sortierkriterien angeben. Sie können auch Unterabfragen als Prädikate (insbesondere solche in der WHERE-Klausel) in einer Kreuztabellenabfrage verwenden.

Die in Pivot-Feld zurückgegebenen Werte werden als Spaltenüberschriften in der Ergebnismenge der Abfrage verwendet. Beispielsweise würde eine Pivotisierung der Umsatzzahlen über dem Verkaufsmonat in einer Kreuztabellenabfrage 12 Spalten erstellen. Sie können die von Pivot-Feld erstellten Überschriften auf feststehende Werte (Wert1, Wert2), beschränken, die in der optionalen IN-Klausel angegeben werden. Sie können auch feststehende Werte angeben, für die keine Daten vorhanden sind, um zusätzliche Spalten zu erstellen.

Siehe auch
FROM-Klausel (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
GROUP BY-Klausel (Microsoft Jet SQL) | SQL Aggregatfunktionen (SQL)
INNER JOIN-Operation (Microsoft Jet SQL) | SQL-Unterabfragen
ORDER BY-Klausel (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)

Beispiel

TRANSFORM-Anweisung (Beispiel)


INNER JOIN-Operation (Microsoft Jet-SQL)

INNER JOIN-Operation

Kombiniert Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld Werte miteinander übereinstimmen.

Syntax

FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Feld1 VerglOp Tabelle2.Feld2

Die INNER JOIN-Operation besteht aus folgenden Teilen:

Teil | Beschreibung
Tabelle1, Tabelle2 | Die Namen der Tabellen, aus denen Datensätze kombiniert werden.
Feld1, Feld2 | Die Namen der Felder, die verknüpft werden. Wenn sie nicht numerisch sind, müssen die Felder denselben Datentyp haben und dieselbe Art von Daten enthalten, können aber unterschiedliche Namen haben.
VerglOp | Ein beliebiger relationaler Vergleichsoperator: "=", "<", ">", "<=", ">=" oder "<>".

Bemerkungen

Sie können eine INNER JOIN-Operation in jeder FROM-Klausel verwenden. Dies ist die gebräuchlichste Art der Verknüpfung. In dieser Verknüpfung werden Datensätze aus zwei Tabellen kombiniert, sobald übereinstimmende Werte in einem Feld gefunden werden, das in beiden Tabellen vorhanden ist.

Sie können INNER JOIN in Abfragen auf den Tabellen "Abteilungen" und "Personal" verwenden, um das gesamte Personal aus allen Abteilungen auszuwählen. Wenn Sie dagegen alle Abteilungen (auch Abteilungen ohne zugeordnetes Personal) oder das gesamte Personal (auch Personal, das keiner Abteilung zugeordnet ist) auswählen wollen, können Sie mit einer LEFT JOIN- oder RIGHT JOIN-Operation eine Inklusionsverknüpfung erstellen.

Wenn Sie Felder verknüpfen möchten, die Daten vom Typ Memo oder OLE-Objekt enthalten, tritt ein Fehler auf.

Sie können zwei beliebige numerische Felder ähnlichen Typs verknüpfen. Sie können z. B. Felder vom Typ Autowert und Long verknüpfen, da diese einen ähnlichen Datentyp haben. Sie können jedoch keine Felder mit den Typen Single und Double verknüpfen.

Das folgende Beispiel zeigt, wie Sie die Tabellen "Kategorien" und "Artikel" über das Feld "Kategorie-Nr" verknüpfen können:

SELECT Kategoriename, Artikelname

FROM Kategorien INNER JOIN Artikel

ON Kategorien.[Kategorie-Nr] = Artikel.[Kategorie-Nr];

In diesem Beispiel ist "Kategorie-Nr" das Feld, über das die Verknüpfung hergestellt wird; das Feld selbst jedoch erscheint nicht in der Abfrageausgabe, da es nicht in der SELECT-Anweisung enthalten ist. Sie können das verknüpfte Feld mit aufnehmen, indem Sie den Feldnamen in der SELECT-Anweisung angeben - in diesem Fall Kategorien.[Kategorie-Nr].

Mit der folgenden Syntax können Sie in einer JOIN-Anweisung auch mehrere ON-Klauseln verknüpfen:

SELECT Felder
FROM Tabelle1 INNER JOIN Tabelle2
ON Tabelle1.Feld1 VerglOp Tabelle2.Feld1 AND
ON Tabelle1.Feld2 VerglOp Tabelle2.Feld2) OR
ON Tabelle1.Feld3 VerglOp Tabelle2.Feld3)];

Mit der folgenden Syntax können Sie JOIN-Anweisungen verschachteln:

SELECT Felder
FROM Tabelle1 INNER JOIN
(Tabelle2 INNER JOIN [( ]Tabelle3
[INNER JOIN [( ]Tabellex [INNER JOIN ...)]
ON Tabelle3.Feld3 VerglOp Tabellex.Feldx)]
ON Tabelle2.Feld2 VerglOp Tabelle3.Feld3)
ON Tabelle1.Feld1 VerglOp Tabelle2.Feld2;

Eine LEFT JOIN- oder RIGHT JOIN-Operation kann innerhalb von INNER JOIN verschachtelt werden, jedoch kann INNER JOIN nicht innerhalb von LEFT JOIN oder RIGHT JOIN verschachtelt werden.

Siehe auch
FROM-Klausel (Microsoft Jet SQL) | TRANSFORM-Anweisung (Microsoft Jet SQL)
Operationen LEFT JOIN, RIGHT JOIN (Microsoft Jet SQL) | UNION-Operation (Microsoft Jet SQL)
SELECT-Anweisung (Microsoft Jet SQL) |

Beispiel

INNER JOIN-Operation (Beispiel)


LEFT JOIN-, RIGHT JOIN-Operation (Microsoft Jet-SQL)

LEFT JOIN-, RIGHT JOIN-Operation

Kombiniert Datensätze aus Quelltabellen, wenn die Operation in einer FROM-Klausel verwendet wird.

Syntax

FROM Tabelle1 [ LEFT | RIGHT ] JOIN Tabelle2
ON Tabelle1.Feld1 VerglOp Tabelle2.Feld2

Die Operationen LEFT JOIN und RIGHT JOIN bestehen aus folgenden Teilen:

Teil | Beschreibung
Tabelle1, Tabelle2 | Die Namen der Tabellen, aus denen Datensätze kombiniert werden.
Feld1, Feld2 | Die Namen der Felder, die verknüpft werden. Die Felder müssen denselben Datentyp haben und dieselbe Art von Daten enthalten, können aber unterschiedliche Namen haben.
VerglOp | Ein beliebiger relationaler Vergleichsoperator: "=", "<", ">", "<=", ">=" oder "<>".

Bemerkungen

Mit einer LEFT JOIN-Operation können Sie eine linke Inklusionsverknüpfung erstellen. Linke Inklusionsverknüpfungen schließen alle Datensätze aus der ersten (linken) Tabelle von zwei Tabellen ein, auch wenn keine entsprechenden Werte für Datensätze in der zweiten (rechten) Tabelle vorhanden sind.

Mit einer RIGHT JOIN-Operation können Sie eine rechte Inklusionsverknüpfung erstellen. Rechte Inklusionsverknüpfungen schließen alle Datensätze aus der zweiten (rechten) Tabelle von zwei Tabellen ein, auch wenn keine übereinstimmenden Werte für Datensätze in der ersten (linken) Tabelle vorhanden sind.

Sie können z. B. LEFT JOIN mit den Tabellen "Abteilungen" (links) und "Personal" (rechts) verwenden, um alle Abteilungen, auch solche, denen keine Angestellten zugeordnet sind, auszuwählen. Um alle Angestellten auszuwählen, auch solche, die keiner Abteilung zugeordnet sind, verwenden Sie RIGHT JOIN.

Das folgende Beispiel zeigt, wie Sie die Tabellen "Kategorien" und "Artikel" über das Feld "Kategorie-Nr" verknüpfen können. Die Abfrage erstellt eine Liste aller Kategorien, die auch Kategorien ohne Artikel umfasst:

SELECT Kategoriename,

Artikelname

FROM Kategorien LEFT JOIN Artikel

ON Kategorien.[Kategorie-Nr] = Artikel.[Kategorie-Nr];

In diesem Beispiel ist "Kategorie-Nr" das Feld, über das die Verknüpfung hergestellt wird, das Feld selbst erscheint jedoch nicht in der Abfrageausgabe, da es nicht in der SELECT-Anweisung enthalten ist. Sie können das verknüpfte Feld ebenfalls aufnehmen, indem Sie den Feldnamen in der SELECT-Anweisung angeben – in diesem Fall "Kategorien.[Kategorie-Nr]".

Anmerkungen

Sie können eine Abfrage erstellen, die nur Datensätze enthält, in denen die Daten in den verknüpften Feldern identisch sind, indem Sie eine INNER JOIN-Operation verwenden.

  • Sie können LEFT JOIN oder RIGHT JOIN innerhalb einer INNER JOIN-Klausel verschachteln, jedoch kann INNER JOIN nicht innerhalb von LEFT JOIN oder RIGHT JOIN verschachtelt sein. Im Hilfethema zu INNER JOIN wird beschrieben, wie Sie Verknüpfungen innerhalb anderer Verknüpfungen verschachteln können.
  • Sie können mehrere ON-Klauseln miteinander verknüpfen. Im Hilfethema zu INNER JOIN wird beschrieben, wie Klauseln miteinander verknüpft werden können.

Wenn Sie Felder verknüpfen möchten, die Daten vom Typ Memo oder OLE-Objekt enthalten, tritt ein Fehler auf.

Siehe auch
FROM-Klausel (Microsoft Jet SQL) | UNION-Operation (Microsoft Jet SQL)
INNER JOIN-Operation (Microsoft Jet SQL) |

Beispiel

LEFT JOIN, RIGHT JOIN-Operationen (Beispiel)


UNION-Operation (Microsoft Jet-SQL)

UNION-Operation

Erstellt eine Union-Abfrage, in der die Ergebnisse zweier oder mehrerer unabhängiger Abfragen oder Tabellen kombiniert werden.

Syntax

[TABLE] Abfrage1 UNION [ALL] [TABLE] Abfrage2 [UNION [ALL] [TABLE] AbfrageN [ ... ]]

Die UNION-Operation besteht aus folgenden Teilen:

Teil | Beschreibung
Abfrage1-N | Eine SELECT-Anweisung der Name einer gespeicherten Abfrage oder der Name einer gespeicherten Tabelle, der das Schlüsselwort TABLE vorangeht.

Bemerkungen

Sie können die Ergebnisse zweier oder mehrerer Abfragen, Tabellen und SELECT-Anweisungen in jeder beliebigen Kombination in einer einzigen UNION-Operation zusammenführen. Im folgenden Beispiel werden die Ergebnisse einer bestehenden Abfrage mit dem Namen "Neue Kunden" und eine SELECT-Anweisung zusammengeführt:

TABLE [Neue Kunden] UNION ALL

SELECT *

FROM Kunden

WHERE Bestellmenge > 1000;

Standardmäßig werden keine mehrfach vorkommenden Datensätze zurückgegeben, wenn Sie eine UNION-Operation verwenden. Sie können aber das Prädikat ALL angeben und so dafür sorgen, dass alle Datensätze zurückgegeben werden. Außerdem hat dies zur Folge, dass die Abfrage schneller ausgeführt wird.

Alle Abfragen in einer UNION-Operation müssen gleich viele Felder abrufen. Diese Felder müssen aber weder gleich groß sein noch denselben Datentyp haben.

Verwenden Sie Alias-Bezeichnungen nur in der ersten SELECT-Anweisung, da diese in anderen Anweisungen ignoriert werden. Verweisen Sie in der ORDER BY-Klausel auf Felder, indem Sie deren Namen aus der ersten SELECT-Anweisung angeben.

Anmerkungen

  • Sie können einer GROUP BY- oder HAVING-Klausel in jedem Abfrage-Argument verwenden, um die zurückgegebenen Daten zu gruppieren.
  • Sie können eine ORDER BY-Klausel hinter das letzte Abfrage-Argument setzen, um die zurückgegebenen Daten in einer bestimmten Reihenfolge anzuzeigen.
Siehe auch
Prädikate ALL, DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | ORDER BY-Klausel (Microsoft Jet SQL)
GROUP BY-Klausel (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
HAVING-Klausel (Microsoft Jet SQL) | SQL-Unterabfragen
INNER JOIN-Operation (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)
Operationen LEFT JOIN, RIGHT JOIN (Microsoft Jet SQL) |

Beispiel

UNION-Operation (Beispiel)


PARAMETERS-Deklaration (Microsoft Jet-SQL)

PARAMETERS-Deklaration

Deklariert die Namen und Datentypen aller Parameter in einer Parameterabfrage.

Syntax

PARAMETERS Name Datentyp [, Name Datentyp [, ...]]

Die PARAMETERS-Deklaration besteht aus folgenden Teilen:

Teil | Beschreibung
Name | Der Name des Parameters. Er wird der Name-Eigenschaft des Parameter-Objekts zugewiesen und dient zum Kennzeichnen dieses Parameters in der Parameters-Auflistung. Sie können Name als Zeichenfolge verwenden, die in einem Dialogfeld angezeigt wird, während Ihre Anwendung die Abfrage ausführt. Schließen Sie Text, der Leerzeichen oder andere Satzzeichen enthält, in eckige Klammern ([ ]) ein. [Niedrigster Preis] und [Mit welchem Monat soll der Bericht beginnen?] sind z. B. zulässige Name-Argumente.
Datentyp | Einer der primären Microsoft Jet SQL-Datentypen oder ein Synonym dafür.

Bemerkungen

Bei regelmäßig ausgeführten Abfragen können Sie eine PARAMETERS-Deklaration verwenden, um eine Parameterabfrage zu erstellen. Eine Parameterabfrage automatisiert das Ändern von Kriterien für die Abfrage. Bei einer Parameterabfrage muss der Code die Parameter für jede Ausführung der Abfrage angeben.

Die PARAMETERS-Deklaration ist optional, geht jedoch jeder anderen Anweisung (einschließlich SELECT) voraus, wenn sie verwendet wird.

Wenn die Deklaration mehrere Parameter umfasst, trennen Sie diese durch Kommas voneinander. Das folgende Beispiel enthält zwei Parameter:

PARAMETERS [Niedrigster Preis] Currency, [Erstes Datum] DateTime;

Sie können Name (aber nicht Datentyp) in einer WHERE oder HAVING-Klausel verwenden. Im folgenden Beispiel wird die Übergabe zweier Parameter erwartet. Anschließend werden dann die Kriterien auf die Datensätze in der Tabelle "Bestellungen" angewendet:

PARAMETERS [Niedrigster Preis] Currency,

[Erstes Datum] DateTime;

SELECT [Bestell-Nr], Bestellmenge

FROM Bestellungen

WHERE Bestellmenge > [Niedrigster Preis]

AND Bestelldatum >= [Erstes Datum];

Siehe auch
EXECUTE Statement (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
HAVING-Klausel (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)
SQL-Datentypen des Microsoft Jet-Datenbankmoduls |

Beispiel

PARAMETERS-Deklaration (Beispiel)


WITH OWNERACCESS OPTION-Deklaration (Microsoft Jet-SQL)

WITH OWNERACCESS OPTION-Deklaration

Verwenden Sie in einer Mehrbenutzerumgebung mit einer geschützten Arbeitsgruppe die Deklaration WITH OWNERACCESS OPTION in einer Abfrage. Damit erteilen Sie dem die Abfrage ausführenden Benutzer die gleichen Berechtigungen, die auch der Eigentümer der Abfrage besitzt.

Syntax

SQLAnweisung
WITH OWNERACCESS OPTION;

Bemerkungen

Die WITH OWNERACCESS OPTION-Deklaration ist optional.

Das folgende Beispiel erlaubt dem Benutzer die Anzeige von Gehaltsinformationen, auch wenn er ansonsten nicht zur Ansicht des Feldes "Gehalt" berechtigt ist, sofern die Abfrage von einer Person mit den nötigen Berechtigungen erstellt wurde:

SELECT Nachname,

Vorname, Gehalt

FROM Personal

ORDER BY Nachname

WITH OWNERACCESS OPTION;

Wenn ein Benutzer normalerweise nicht zum Erstellen einer Tabelle oder zum Hinzufügen zu einer Tabelle berechtigt ist, können Sie ihm unter Verwendung von WITH OWNERACCESS OPTION die Berechtigung zur Ausführung einer Tabellenerstellungs- oder Anfügeabfrage erteilen.

Wenn Sie die Einhaltung der Sicherheitseinstellungen für die Arbeitsgruppe und der Benutzerberechtigungen erzwingen möchten, geben Sie die WITH OWNERACCESS OPTION-Deklaration nicht an.

Diese Option erfordert, dass Sie Zugriff auf die Datei SYSTEM.MDW haben, die der Datenbank zugeordnet ist. Sie kann nur in geschützten Mehrbenutzerumgebungen sinnvoll eingesetzt werden.

Siehe auch

SELECT-Anweisung (Microsoft Jet SQL)


PROCEDURE-Klausel (Microsoft Jet-SQL)

PROCEDURE-Klausel

Definiert den Namen und ggf. optionale Parameter für eine Abfrage.

Anmerkung Die PROCEDURE-Klausel wurde durch die PROCEDURE-Anweisung ersetzt. Zwar wird die PROCEDURE-Klausel auch weiterhin unterstützt, die PROCEDURE-Anweisung bietet jedoch eine Obermenge der Funktionen der PROCEDURE-Klausel und ist die empfohlene Syntax.

Syntax

PROCEDURE Name [Param1 Datentyp[, Param2 Datentyp[, ...]]

Die PROCEDURE-Klausel besteht aus folgenden Teilen:

Teil | Beschreibung
Name | Der Name der Prozedur. Er muss Standard-Namenskonventionen folgen.
Param1, Param2 | Ein oder mehrere Feldnamen oder Parameter. Beispiel: PROCEDURE Umsatz_nach_Ländern [Erstes Datum] DateTime, [Letztes Datum] DateTime; Weitere Informationen zu Parametern finden Sie unter Parameter.
Datentyp | Einer der primären Microsoft Jet SQL-Datentypen oder ein Synonym dafür.

Bemerkungen

Eine SQL-Prozedur besteht aus einer PROCEDURE-Klausel (die den Namen der Prozedur angibt), einer optionalen Liste mit Parameterdefinitionen und einer einzelnen SQL-Anweisung. Die Prozedur Artikelnummer_ermitteln kann z. B. eine Abfrage ausführen, die eine bestimmte Artikelnummer ermittelt.

Anmerkungen

  • Wenn die Klausel mehrere Felddefinitionen (d. h. Paare von Param und Datentyp) enthält, müssen diese durch Kommas voneinander getrennt sein.
  • Auf die PROCEDURE-Klausel muss eine SQL-Anweisung (z. B. eine SELECT- oder UPDATE-Anweisung) folgen.
Siehe auch
DELETE-Anweisung (Microsoft Jet SQL) | PARAMETERS-Deklaration (Microsoft Jet SQL)
EXECUTE Statement (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
SQL-Datentypen des Microsoft Jet-Datenbankmoduls | UPDATE-Anweisung (Microsoft Jet SQL)

Beispiel

CREATE PROCEDURE-Anweisung, PROCEDURE-Klausel (Beispiel)


SQL-Unterabfragen

Eine Unterabfrage ist eine SELECT-Anweisung, die entweder innerhalb einer SELECT-, SELECT...INTO-, INSERT...INTO-, DELETE- oder UPDATE-Anweisung oder innerhalb einer anderen Unterabfrage verschachtelt ist.

Syntax

Eine Unterabfrage kann in drei Syntaxvarianten formuliert werden:

Vergleich [ANY | ALL | SOME] (SQLAnweisung)

Ausdruck [NOT] IN (SQLAnweisung)

[NOT] EXISTS (SQLAnweisung)

Eine Unterabfrage besteht aus folgenden Teilen:

Teil | Beschreibung
Vergleich | Ein Ausdruck und ein Vergleichsoperator, der den Ausdruck mit den jeweiligen Ergebnissen der Unterabfrage vergleicht.
Ausdruck | Ein Ausdruck, nach dem innerhalb der Ergebnismenge der Abfrage gesucht wird.
SQLAnweisung | Eine SELECT-Anweisung, die dasselbe Format hat und nach denselben Regeln aufgebaut ist wie jede andere SELECT-Anweisung. Diese Anweisung muss in runden Klammern eingeschlossen sein.

Bemerkungen

Sie können in der Feldliste einer SELECT-Anweisung oder in einer WHERE- oder HAVING-Klausel anstelle eines Ausdrucks eine Unterabfrage verwenden. Indem Sie in einer Unterabfrage eine SELECT-Anweisung einsetzen, stellen Sie einen oder mehrere bestimmte Werte bereit, die dann im Ausdruck der zugehörigen WHERE- oder HAVING-Klausel ausgewertet werden.

Verwenden Sie das Prädikat ANY oder SOME (bedeutungsgleich), wenn Sie Datensätze aus der Hauptabfrage abrufen möchten, die den Vergleich mit mindestens einem der von der Unterabfrage zurückgegebenen Datensätze erfüllen. Im folgenden Beispiel werden alle Artikel zurückgegeben, deren Einzelpreis höher ist als der Einzelpreis irgendeines der Artikel, die mit einem Rabatt von 25 Prozent oder mehr verkauft werden:

SELECT * FROM Artikel

WHERE Einzelpreis > ANY

(SELECT Einzelpreis FROM Bestelldetails

WHERE Rabatt >= .25);

Verwenden Sie das Prädikat ALL, wenn Sie nur die Datensätze der Hauptabfrage abrufen möchten, die den Vergleich mit allen von der Unterabfrage abgerufenen Datensätzen erfüllen. Würden Sie im vorangegangenen Beispiel ANY durch ALL ersetzen, so würde die Abfrage nur diejenigen Artikel zurückgeben, deren jeweiliger Einzelpreis höher ist als der aller (auch der teuersten) Produkte, die mit einem Rabatt von 25 Prozent oder mehr verkauft werden. Damit ist diese Abfrage deutlich restriktiver.

Mit dem Prädikat IN rufen Sie nur diejenigen Datensätze der Hauptabfrage ab, für die einige Datensätze der Unterabfrage einen gleichen Wert enthalten. Im folgenden Beispiel werden alle Artikel zurückgegeben, die mit einem Rabatt von 25 Prozent oder mehr verkauft werden:

SELECT * FROM Artikel

WHERE [Artikel-Nr] IN

(SELECT [Artikel-Nr] FROM Bestelldetails

WHERE Rabatt >= .25);

Umgekehrt können Sie NOT IN verwenden, um Datensätze der Hauptabfrage abzurufen, für die kein Datensatz der Unterabfrage einen gleichen Wert enthält.

Mit dem Prädikat EXISTS (und dem optionalen reservierten Wort NOT) in True/False-Vergleichen können Sie herausfinden, ob die jeweilige Abfrage überhaupt Datensätze zurückgibt.

Außerdem können Sie in einer Unterabfrage Alias-Bezeichnungen für Tabellennamen verwenden, um auf Tabellen zu verweisen, die in einer FROM-Klausel außerhalb der Unterabfrage angegeben wurden. Das folgende Beispiel liefert die Namen der Angestellten, deren Gehalt größer oder gleich dem Durchschnittsgehalt aller Angestellten ist, die dieselbe Position bekleiden. Die Tabelle "Personal" erhält die Alias-Bezeichnung "T1":

SELECT Nachname,

Vorname, Position, Gehalt

FROM Personal AS T1

WHERE Gehalt >=

(SELECT Avg(Gehalt)

FROM Personal

WHERE T1.Position = Personal.Position) Order by Position;

In diesem Beispiel ist das reservierte Wort AS optional.

Manche Unterabfragen sind in Kreuztabellenabfragen erlaubt (insbesondere als Prädikate in der WHERE-Klausel). Unterabfragen als Ausgabe (d. h. in der SELECT-Liste angegebene) sind in Kreuztabellenabfragen nicht erlaubt.

Siehe auch
Prädikate ALL, DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
DELETE-Anweisung (Microsoft Jet SQL) | SELECT INTO-Anweisung (Microsoft Jet SQL)
HAVING-Klausel (Microsoft Jet SQL) | UNION-Operation (Microsoft Jet SQL)
INNER JOIN-Operation (Microsoft Jet SQL) | UPDATE-Anweisung (Microsoft Jet SQL)
INSERT INTO-Anweisung (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)
Operationen LEFT JOIN, RIGHT JOIN (Microsoft Jet SQL) |

Beispiel

SQL-Unterabfragen (Beispiel)


Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet

Wenn Ihre Anwendung mit den Standardfunktionen des Microsoft Jet-Datenbankmoduls nicht richtig funktioniert, passen Sie die Einstellungen in der Microsoft® Windows®-Registrierung entsprechend an. Die Windows-Registrierung kann darüber hinaus verwendet werden, um die Operationen des installierbaren ISAM und des ODBC-Treibers anzupassen.

Es gibt vier Möglichkeiten, die Einstellungen in der Windows-Registrierung anzupassen.

Verwenden von Regedit.exe zum Überschreiben der Standardeinstellungen

Erstellen eines Teils der anwendungsspezifischen Registrierungsstruktur, um Einstellungen zu verwalten

Verwenden der SetOption-Methode von DAO

Verwenden der Connection-Eigenschaften in Microsoft OLE DB Provider for Jet

Mit Einträgen in der Windows-Registrierung können Sie folgendes festlegen.

  • Einstellungen für die Interaktion mit Microsoft Excel, Lotus, Paradox, and dBASE-Datenbanken. Siehe Initialisieren des Paradox-Datenbanktreibers, Initialisieren des Microsoft Excel-Treibers, Initialisieren des Lotus-Treibers und Initialisieren des dBASE-Datenbanktreibers.
  • Einstellungen, die von Microsoft ODBC zur Interaktion mit SQL-Datenbanken verwendet werden. Siehe Initialisieren des Microsoft ODBC-Datenbanktreibers.
  • Einstellungen, die bestimmen, wie das Microsoft Jet-Datenbankmodul Daten liest und speichert. Siehe Initialisieren des Microsoft Jet 2.5-Datenbankmodultreibers, Initialisieren des Microsoft Jet 3.5-Datenbankmodultreibers und Initialisieren des Microsoft Jet 4.0-Datenbankmodultreibers.
  • Einstellungen, mit denen gesteuert wird, wie das Microsoft Jet-Datenbankmodul mit dem Internet und Microsoft Exchange zusammen funktioniert. Siehe Initialisieren des Treibers für Text- und HTML-Dataquellen und Initialisieren des Treibers für Microsoft Exchange-Datenquellen.
  • Einstellungen, mit denen gesteuert wird, wie das Microsoft Jet-Datenbankmodul mit den Daten funktioniert, die als Text importiert wurden. Siehe Initialisieren des Treibers für Text- und HTML-Datenquellen .
Siehe auch
Initialisieren des dBASE-Datenbanktreibers | Anpassen des Microsoft Jet-Datenbankmoduls für den Zugriff über ODBC
Initialisieren des Lotus-Treibers | Initialisieren des Paradox-Datenbanktreibers
Initialisieren des Treibers für das Microsoft Jet-Datenbankmodul in der Version 2.5 | Initialisieren des Treibers für Text- und HTML-Datenquellen
Initialisieren des Microsoft Jet 3.5-Datenbankmodultreibers | Initialisieren des Treibers für Microsoft Exchange-Datenquellen
Initialisieren des Microsoft Jet 4.0-Datenbankmodultreibers | Initialisieren des Microsoft Excel-Treibers


Initialisieren des dBASE-Datenbanktreibers

Wenn Sie den dBASE-Datenbanktreiber installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft® Windows®-Registrierung unter den Teilschlüsseln Engines und ISAM Formats ein. Ändern Sie diese Einstellungen nicht direkt. Verwenden Sie das Setup-Programm Ihrer Anwendung, um diese Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format für den dBASE-Datenbanktreiber werden in den folgenden Abschnitten beschrieben.

Der Paradox-Datenbanktreiber arbeitet abhängig davon, ob die Borland Database Engine (BDE) installiert ist, in einem von zwei Modi. Paradox-Daten sind nur mit der BDE aktualisierbar. Ohne die BDE können die Paradox-Daten schreibgeschützt gelesen, exportiert oder verknüpft werden.

dBASE-Initialisierungseinstellungen

In der Unterstruktur Jet\4.0\Engines\Xbase sind Initialisierungseinstellungen für den Treiber msxbse40.dll enthalten, der für den Zugriff auf externe dBASE-Datenquellen benötigt wird. Typische Einstellungen für die Einträge in diesem Ordner sind:

win32=<path>\msxbde40.dll

NetworkAccess=On

PageTimeout=600

INFPath=C:\DBASE\SYSTEM

CollatingSequence=ASCII

DataCodePage=OEM

Deleted=On

DbcsStr=On

Century=Off

Date=MDY

Mark=47

Exact=Off

Das Microsoft Jet-Datenbankmodul verwendet die Einträge im Xbase-Ordner wie folgt.

Eintrag | Beschreibung
win32 | Der Pfad der Datei Msxbse40.dll. Der vollständige Pfad wird bei der Installation bestimmt. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
NetworkAccess | Binärer Indikator, der die Voreinstellung für Dateisperren festlegt. Wenn NetworkAccess den Wert 00 hat, werden Tabellen mit exklusivem Zugriff geöffnet, unabhängig davon, wie die Einstellungen des Arguments exklusiv der Methoden OpenDatabase und OpenRecordset sind. Die Voreinstellung ist 01. Werte sind vom Typ Binärwert für Windows 95 und Windows NT 4.0 und vom Typ REG_BINARY für Windows NT 3.51.
PageTimeout | Die Zeitspanne zwischen dem Speichern von Daten in einem internen Puffer und ihre Ungültigkeit. Der Wert wird in Einheiten von 100 Millisekunden angegeben. Die Voreinstellung ist 600 Einheiten oder 60 Sekunden. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
INFPath Der vollständige Pfad zum Verzeichnis der .INF-Dateien. Das Microsoft Jet-Datenbankmodul sucht zuerst in dem Verzeichnis nach einer .INF-Datei, in dem sich die Tabelle befindet. Wenn sich die .INF-Datei nicht im Datenbankverzeichnis befindet, wird in dem durch INFPath angegebenen Verzeichnis gesucht. Wenn kein Wert für INFPath angegeben wird, werden beliebige im Datenbankverzeichnis vorhandene Indexdateien (.CDX oder .MDX) verwendet. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.

Als Voreinstellung ist kein Wert für diesen Eintrag festgelegt.
CollatingSequence Diese Einstellung wird nur verwendet, wenn die BDE nicht auf dem Computer vorhanden ist.

Die Sortierreihenfolge für alle dBASE-Tabellen, die mit dem Microsoft Jet-Datenbankmodul erstellt oder geöffnet wurden. Die möglichen Werte sind ASCII und International. Die Voreinstellung ist ASCII. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
DataCodePage Diese Einstellung wird nur verwendet, wenn die BDE nicht auf dem Computer vorhanden ist.

Ein Indikator, der anzeigt, wie Textseiten gespeichert werden. Folgende Einstellungen sind möglich.

  • OEM: OemToAnsi- und AnsiToOem-Umwandlungen werden durchgeführt.
  • ANSI: OemToAnsi- und AnsiToOem-Umwandlungen werden nicht durchgeführt.

Die Voreinstellung ist OEM. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
Deleted | Binärer Indikator, der anzeigt, wie Datensätze zum Löschen markiert werden und wie diese vom Microsoft Jet-Datenbankmodul behandelt werden. Der Wert 01 entspricht dem dBASE-Befehl SET DELETED ON und zeigt an, dass ein gelöschter Datensatz niemals abgerufen oder zum aktuellen Datensatz wird. Der Wert 00 entspricht dem dBASE-Befehl SET DELETED OFF und zeigt an, dass ein gelöschter Datensatz wie jeder andere Datensatz behandelt wird. Die Voreinstellung ist 00. Werte sind vom Typ Binärwert für Windows 95 und Windows NT 4.0 und vom Typ REG_BINARY für Windows NT 3.51.
DbcsStr | Binärer Indikator, der festlegt, wie die Zeichenfolgefunktionen Daten des Zeichensatzes für Nahost behandeln. Ein Wert von 01 entspricht dem dBASE-Befehl SET KANJISTRING ON und gibt an, dass die Zeichenfolgen als ein dbcs-Zeichenstrom behandelt werden sollen. Ein Wert von 00 gibt an, dass die Zeichenfolgen als einfacher Bytestrom behandelt werden sollen.
Century | Binärer Indikator für das Formatieren der Komponente, die in Datumswerten das Jahrhundert angibt, in Fällen, in denen Funktionen in Indexausdrücken zur Konvertierung von Datumsangaben in Zeichenfolgen verwendet werden. Der Wert 01 entspricht dem dBASE-Befehl SET CENTURY ON, und der Wert 00 entspricht dem dBASE-Befehl SET CENTURY OFF. Die Voreinstellung ist 00. Werte sind vom Typ Binärwert für Windows 95 und Windows NT 4.0 und vom Typ REG_BINARY für Windows NT 3.51.
Date | Die Art der Datumsformatierung, die in Fällen verwendet wird, in denen Funktionen in Indexausdrücken zur Konvertierung von Datumsangaben in Zeichenfolgen verwendet werden. Die möglichen Einstellungen für diesen Eintrag, der dem dBASE-Befehl SET DATE entspricht, sind American, ANSI, British, French, DMY, German, Italian, Japan, MDY, USA und YMD. Die Voreinstellung ist MDY. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
Mark Der dezimale Wert des ASCII-Zeichens, das verwendet wird, um die Teile eines Datums voneinander zu trennen. Die Voreinstellung hängt wie folgt von der Einstellung für "Date" ab:
  • "/" (American, MDY)
  • "." (ANSI)
  • "/" (British, French, DMY)
  • "." (German)
  • "-" (Italian)
  • "/" (Japan, YMD)
  • "-" (USA)

Der Wert 0 gibt an, dass das System normalerweise das Trennzeichen verwenden sollte, dass dem ausgewählten Datumsformat zugeordnet ist.

Die Voreinstellung ist 0. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
Exact | Binärer Indikator für Zeichenfolgenvergleiche. Der Wert 01 entspricht dem dBASE-Befehl SET EXACT ON. Der Wert 00 entspricht dem dBASE-Befehl SET EXACT OFF. Die Voreinstellung ist 00. Werte sind vom Typ Binärwert für Windows 95 und Windows NT 4.0 und vom Typ REG_BINARY für Windows NT 3.51.

dBASE ISAM-Formate

Der Ordner Jet\4.0\ISAM Formats\dBASE III enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Xbase
ExportFilter | REG_SZ | Zeichenfolge | dBASE III (*.dbf)
ImportFilter | REG_SZ | Zeichenfolge | dBASE III (*.dbf)
CanLink | REG_BINARY | Zeichenfolge | 01
OneTablePerFile | REG_BINARY | Zeichenfolge | 01
IsamType | REG_DWORD | DWORD-Wert | 0
IndexDialog | REG_BINARY | Binärwert | 01
IndexFilter | REG_SZ | Zeichenfolge | dBASE-Index (*.ndx)
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextImport | REG_SZ | Zeichenfolge | Importieren von Daten aus der externen Datei in die aktuelle Datenbank. Das Ändern der Daten in der aktuellen Datenbank ändert nicht die Daten in der externen Datei.
ResultTextLink | REG_SZ | Zeichenfolge | Erstellen einer Tabelle in der aktuellen Datenbank, die mit der externen Datei verknüpft ist. Das Ändern der Daten in der aktuellen Datenbank ändert die Daten in der externen Datei.
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine dBASE III-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 00

Der Ordner Jet\4.0\ISAM Formats\dBASE IV enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Xbase
ExportFilter | REG_SZ | Zeichenfolge | dBASE IV (*.dbf)
ImportFilter | REG_SZ | Zeichenfolge | dBASE IV (*.dbf)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 01
IsamType | REG_DWORD | DWORD-Wert | 0
IndexDialog | REG_BINARY | Binärwert | 01
IndexFilter | REG_SZ | Zeichenfolge | dBASE-Index (*.ndx; *.mdx)
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextImport | REG_SZ | Zeichenfolge | Importieren von Daten aus der externen Datei in die aktuelle Datenbank. Das Ändern der Daten in der aktuellen Datenbank ändert nicht die Daten in der externen Datei.
ResultTextLink | REG_SZ | Zeichenfolge | Erstellen einer Tabelle in der aktuellen Datenbank, die mit der externen Datei verknüpft ist. Das Ändern der Daten in der aktuellen Datenbank ändert die Daten in der externen Datei.
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine dBASE IV-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 00

Der Ordner Jet\4.0\ISAM Formats\dBASE 5.x enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Xbase
ExportFilter | REG_SZ | Zeichenfolge | dBASE 5 (*.dbf)
ImportFilter | REG_SZ | Zeichenfolge | dBASE 5 (*.dbf)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 01
IsamType | REG_DWORD | DWORD-Wert | 0
IndexDialog | REG_BINARY | Binärwert | 01
IndexFilter | REG_SZ | Zeichenfolge | dBASE-Index (*.ndx; *.mdx)
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextImport | REG_SZ | Zeichenfolge | Importieren von Daten aus der externen Datei in die aktuelle Datenbank. Das Ändern der Daten in der aktuellen Datenbank ändert nicht die Daten in der externen Datei.
ResultTextLink | REG_SZ | Zeichenfolge | Erstellen einer Tabelle in der aktuellen Datenbank, die mit der externen Datei verknüpft ist. Das Ändern der Daten in der aktuellen Datenbank ändert die Daten in der externen Datei.
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine dBASE IV-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 00

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Initialisieren des Lotus-Treibers

Wenn Sie den Lotus-Datenbanktreiber installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft® Windows®-Registrierung unter den Teilschlüsseln Engines und ISAM Formats ein. Ändern Sie diese Einstellungen nicht direkt. Verwenden Sie das Setup-Programm Ihrer Anwendung, um diese Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format des Lotus-Datenbanktreibers werden in den folgenden Abschnitten beschrieben.

Lotus-Initialisierungseinstellungen

Im Ordner Jet\4.0\Engines\Lotus sind Initialisierungseinstellungen für den Treiber msltus40.dll enthalten, der für den Zugriff auf externe Lotus-Tabellen benötigt wird. Typische Einstellungen für die Einträge in diesem Ordner sind:

win32=<path>\msltus40.dll

TypeGuessRows=8

ImportMixedTypes=Text

AppendBlankRows=4

FirstRowHasNames=Yes

Das Microsoft Jet-Datenbankmodul verwendet die Einträge im Lotus-Schlüssel wie folgt.

Eintrag | Beschreibung
win32 | Der Pfad der Datei msltus40.dll. Der vollständige Pfad wird bei der Installation bestimmt. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
TypeGuessRows | Die Anzahl der Zeilen, die für den Datentyp überprüft werden sollen. Der Datentyp wird anhand der am häufigsten vorgefundenen Datentypen in der Auswahl bestimmt. Bei nicht eindeutiger Zuordnung erfolgt die Bestimmung des Datentyps in der folgenden Reihenfolge: Number, Currency, Date, Text, Long Text. Wenn Daten untersucht werden, die keinem der möglichen Datentypen für die Spalte entsprechen, wird ein Null-Wert zurückgegeben. Beim Importieren einer Spalte mit mehreren Datentypen wird die gesamte Spalte entsprechend der Einstellung von ImportMixedTypes angepasst. Die Standardanzahl der zu überprüfenden Zeilen ist 8. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
ImportMixedTypes | Kann auf MajorityType oder Text (Voreinstellung) festgelegt werden. Wurde der Wert auf MajorityType festgelegt, so werden Spalten mit mehreren Datentypen beim Importieren in den angegebenen Datentyp umgewandelt. Wurde der Wert auf Text festgelegt, so werden Spalten mit mehreren Datentypen beim Importieren auf Text festgelegt. Die Voreinstellung ist Text. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
AppendBlankRows | Die Anzahl der leeren Zeilen, die an das Ende eines WK1-, WK3- oder WK4-Arbeitsblatts angefügt werden. Wenn z. B. AppendBlankRows auf 4 festgelegt ist, fügt Microsoft Jet 4 leere Zeilen an das Ende des Arbeitsblatts an, bevor Zeilen angefügt werden, die Daten enthalten. Ganzzahlige Werte für diese Einstellung liegen im Bereich von 0 bis 16. Die Voreinstellung ist 01 (es wird eine zusätzliche Zeile angefügt). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
FirstRowHasNames | Ein binärer Wert, der bestimmt, ob die erste Zeile der Tabelle Spaltennamen enthält. Der Wert 01 gibt an, dass während des Importierens die Spaltennamen aus der ersten Zeile genommen werden. 00 gibt an, dass sich keine Spaltennamen in der ersten Zeile befinden, und Spaltennamen erscheinen als F1, F2, F3 usw. Die Voreinstellung ist 1. Werte sind vom Typ Binärwert für Windows 95 und Windows NT 4.0 und vom Typ REG_BINARY für Windows NT 3.51.

Lotus ISAM-Formate

Der Ordner Jet\4.0\ISAM Formats\Lotus WK1 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Lotus
ExportFilter | REG_SZ | Zeichenfolge | Lotus 1-2-3 WK1 (*.wk1)
ImportFilter | REG_SZ | Zeichenfolge | Lotus 1-2-3 (*.wk* )
CanLink | REG_BINARY | Binärwert | 00
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
ResultTextImport | REG_SZ | Zeichenfolge | Importieren von Daten aus der externen Datei in die aktuelle Datenbank. Das Ändern der Daten in der aktuellen Datenbank ändert nicht die Daten in der externen Datei.
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Lotus 1-2-3-Datei, Version 2. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Der Ordner Jet\4.0\ISAM Formats\Lotus WK3 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Lotus
ExportFilter | REG_SZ | Zeichenfolge | Lotus 1-2-3 WK3 (*.wk3)
CanLink | REG_BINARY | Binärwert | 00
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Lotus 1-2-3-Datei, Version 3. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Der Ordner Jet\4.0\ISAM Formats\Lotus WK4 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Lotus
CanLink | REG_BINARY | Binärwert | 00
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
SupportsLongNames | REG_BINARY | Binärwert | 01

Der Ordner Jet\4.0\ISAM Formats\Lotus WJ2 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Lotus
ExportFilter | REG_SZ | Zeichenfolge | Lotus 1-2-3 WJ2 (*.wj2)
ImportFilter | REG_SZ | Zeichenfolge | Lotus 1-2-3/DOS (*.wj* )
CanLink | REG_BINARY | Binärwert | 00
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Lotus 1-2-3-Datei, Version 2. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Der Ordner Jet\4.0\ISAM Formats\Lotus WJ3 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Lotus
CanLink | REG_BINARY | Binärwert | 00
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
SupportsLongNames | REG_BINARY | Binärwert | 01

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Initialisieren des Microsoft Excel-Treibers

Wenn Sie den Microsoft® Excel-Treiber installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft Windows®-Registrierung unter den Teilschlüsseln Engines und Isam Formats ein. Ändern Sie diese Einstellungen nicht direkt. Verwenden Sie das Setup-Programm Ihrer Anwendung, um diese Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format für den Microsoft Excel-Datenbanktreiber werden in den folgenden Abschnitten beschrieben.

Microsoft Excel-Initialisierungseinstellungen

Im Ordner Jet\4.0\Engines\Excel sind Initialisierungseinstellungen für den Treiber msexcl40.dll enthalten, der für den Zugriff auf externe Microsoft Excel-Tabellen benötigt wird. Typische Einstellungen für die Einträge in diesem Ordner sind:

win32=<path>\ msexcl40.dll

TypeGuessRows=8

ImportMixedTypes=Text

AppendBlankRows=1

FirstRowHasNames=Yes

Das Microsoft Jet-Datenbankmodul verwendet die Einträge im Excel-Ordner wie folgt.

Eintrag | Beschreibung
win32 | Der Pfad der Datei msexcl40.dll. Der vollständige Pfad wird bei der Installation bestimmt. Werte sind vom Typ String für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
TypeGuessRows | Die Anzahl der Zeilen, die für den Datentyp überprüft werden sollen. Der Datentyp wird anhand der am häufigsten vorgefundenen Datentypen in der Auswahl bestimmt. Bei nicht eindeutiger Zuordnung erfolgt die Bestimmung des Datentyps in der folgenden Reihenfolge: Number, Currency, Date, Text, Boolean. Wenn Daten untersucht werden, die keinem der möglichen Datentypen für die Spalte entsprechen, wird ein Null-Wert zurückgegeben. Beim Importieren einer Spalte mit mehreren Datentypen wird die gesamte Spalte entsprechend der Einstellung von ImportMixedTypes angepasst. Die Standardanzahl der zu überprüfenden Zeilen ist 8. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
ImportMixedTypes | Kann auf MajorityType oder Text (Voreinstellung) festgelegt werden. Wurde der Wert auf MajorityType festgelegt, so werden Spalten mit mehreren Datentypen beim Importieren in den angegebenen Datentyp umgewandelt. Wurde der Wert auf Text festgelegt, so werden Spalten mit mehreren Datentypen beim Importieren auf Text festgelegt. Die Voreinstellung ist Text. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
AppendBlankRows | Die Anzahl leerer Zeilen, die an das Ende einer Tabelle der Version 3.5 oder 4.0 angefügt werden, bevor neue Daten hinzugefügt werden. Wenn z. B. AppendBlankRows auf 4 festgelegt ist, fügt Microsoft Jet 4 leere Zeilen an das Ende des Arbeitsblatts an, bevor Zeilen angefügt werden, die Daten enthalten. Ganzzahlige Werte für diese Einstellung liegen im Bereich von 0 bis 16. Die Voreinstellung ist 01 (es wird eine zusätzliche Zeile angefügt). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
FirstRowHasNames | Ein binärer Wert, der bestimmt, ob die erste Zeile der Tabelle Spaltennamen enthält. Der Wert 01 gibt an, dass während des Importierens die Spaltennamen aus der ersten Zeile genommen werden. 00 gibt an, dass sich keine Spaltennamen in der ersten Zeile befinden, und Spaltennamen erscheinen als F1, F2, F3 usw. Die Voreinstellung ist 1. Werte sind vom Typ Binärwert für Windows 95 und Windows NT 4.0 und vom Typ REG_BINARY für Windows NT 3.51.

Microsoft Excel ISAM-Formate

Der Ordner Jet\4.0\ISAM Formats\Excel 3.0 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Excel
ExportFilter | REG_SZ | Zeichenfolge | Microsoft Excel 3 (*.xls)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Microsoft Excel 3.0-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Der Ordner Jet\4.0\ISAM Formats\Excel 4.0 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Excel
ExportFilter | REG_SZ | Zeichenfolge | Microsoft Excel 4 (*.xls)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Microsoft Excel 4.0-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Der Ordner Jet\4.0\ISAM Formats\Excel 5.0 enthält folgende Einträge, die Microsoft Excel, Versionen 5.0 und 7.0, betreffen.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Excel
ExportFilter | REG_SZ | Zeichenfolge | Microsoft Excel 5-7 (*.xls)
ImportFilter | REG_SZ | Zeichenfolge | Microsoft Excel (*.xls)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
ResultTextImport | REG_SZ | Zeichenfolge | Importieren von Daten aus der externen Datei in die aktuelle Datenbank. Das Ändern der Daten in der aktuellen Datenbank ändert nicht die Daten in der externen Datei.
ResultTextLink | REG_SZ | Zeichenfolge | Erstellen einer Tabelle in der aktuellen Datenbank, die mit der externen Datei verknüpft ist. Das Ändern der Daten in der aktuellen Datenbank ändert die Daten in der externen Datei.
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Microsoft Excel 5.0-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Der Ordner Jet\4.0\ISAM Formats\Excel 8.0 enthält folgende Einträge, die Microsoft Excel 97 betreffen.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Excel
ExportFilter | REG_SZ | Zeichenfolge | Microsoft Excel 97-2000 (*.xls)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 1
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 01
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Microsoft Excel 97-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Initialisieren des Treibers für Microsoft Exchange-Datenquellen

Wenn Sie den Treiber für Microsoft® Exchange-Datenquellen installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft Windows®-Registrierung unter den Teilschlüsseln Engines und Isam Formats ein. Ändern Sie diese Einstellungen nicht direkt. Verwenden Sie das Setup-Programm Ihrer Anwendung, um diese Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format des Treibers für Microsoft Exchange-Datenquellen werden in den folgenden Abschnitten beschrieben.

Initialisierungseinstellungen für Microsoft Exchange-Datenquellen

Im Ordner Jet\4.0\Engines\Exchange sind Initialisierungseinstellungen für den Treiber msexch40.dll enthalten, der für den Zugriff auf externe Microsoft Outlook- und Microsoft Exchange-Ordner benötigt wird. Der einzige Eintrag in diesem Ordner ist der folgende.

win32=<path>\msexch40.dll

Das Microsoft Jet-Datenbankmodul verwendet diese Einstellung, um auf den Pfad der Datei msexch40.dll zu verweisen. Der vollständige Pfad wird bei der Installation bestimmt. Werte sind vom Typ String für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.

Die Ergebnisse sind ähnlich, wenn das Outlook ISAM-Format oder das Exchange-Client ISAM-Format verwendet wird. Der einzige Unterschied besteht darin, dass die beiden unterschiedlichen Clients verschiedene Namen für die gleichen Spalten verwenden. Die beiden ISAM-Formate wurden so konzipiert, dass Microsoft Jet die Spaltennamen in der speziellen Form zurückgeben kann, die der Benutzer benötigt.

Microsoft Outlook-Client ISAM-Formate

Der Ordner Jet\4.0\ISAM Formats\Exchange 9.0 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Exchange
ImportFilter | REG_SZ | Zeichenfolge | Outlook()
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 3
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
SupportsLongNames | REG_BINARY | Binärwert | 01

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Microsoft Exchange-Client ISAM-Formate

Der Ordner Jet\4.0\ISAM Formats\Exchange 4.0 enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Exchange
ImportFilter | REG_SZ | Zeichenfolge | Exchange()
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 3
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
SupportsLongNames | REG_BINARY | Binärwert | 01

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Anpassen der Datei Schema.ini für Outlook- und Exchange-Daten

Die Datei Schema.ini wird vom Outlook- and Exchange-ISAM auf ähnliche Weise wie vom Text-ISAM verwendet. Schema.ini enthält eine Beschreibung einer Datenquelle: die Formatierung der Daten sowie die Namen der Spalten, auf die zugegriffen werden soll.

Sie müssen die Datei Schema.ini nicht anpassen, bevor Sie Daten für Outlook oder Exchange lesen, importieren oder exportieren können. Viele Einstellungen der Datei Schema.ini für Outlook und Exchange beziehen sich auf interne Tags, die MAPI benötigt. Sie sollten nicht versuchen, diese Tag-Werte zu ändern.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Initialisieren des Treibers für das Microsoft Jet-Datenbankmodul in der Version 4.0

Wenn Sie den Treiber für das Microsoft® Jet-Datenbankmodul, Version 4.0, installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft Windows®-Registrierung unter den Teilschlüsseln Engines und Isam Formats ein. Verwenden Sie den Registrierungseditor, um Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format für den Microsoft Jet-Datenbankmodul-Treiber werden in den folgenden Abschnitten beschrieben.

Initialisierungseinstellungen für das Microsoft Jet-Datenbankmodul

Im Ordner Jet\4.0\Engines sind Initialisierungseinstellungen für das Datenbankmodul msjet40.dll enthalten, die für den Zugriff auf Microsoft Access-Datenbanken benötigt werden. Typische Initialisierungseinstellungen für die Einträge in diesem Ordner sind:

SystemDB = <Pfad>\System.mdb

CompactBYPkey = 1

PrevFormatCompactWithUNICODECompression=1

Das Microsoft Jet-Datenbankmodul verwendet folgende Einträge.

Eintrag | Beschreibung
SystemDB | Gibt den vollständigen Pfad und den Dateinamen der Arbeitsgruppeninformationsdatei an. Die Voreinstellung ist der entsprechende Pfadname gefolgt von dem Dateinamen System.mdb. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und vom Typ REG_SZ für Windows NT 3.51.
CompactByPKey Gibt an, dass Tabellen beim Komprimieren in der Primärschlüsselreihenfolge kopiert werden, falls die Tabelle einen Primärschlüssel enthält. Enthält eine Tabelle keinen Primärschlüssel, werden die Tabellen in Basistabellenreihenfolge kopiert.

Ein Wert 0 zeigt an, dass Tabellen in Basistabellenreihenfolge komprimiert werden sollen. Ein Wert ungleich 0 zeigt an, dass Tabellen in Primärschlüsselreihenfolge komprimiert werden sollen, wenn ein Primärschlüssel vorhanden ist. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.

Anmerkung Diese Einstellung gilt nur für das Komprimieren von Datenbanken, die mit dem Microsoft Jet-Datenbankmodul, Version 3.0, oder später, erstellt wurden. Wenn Sie Datenbanken komprimieren, die mit dem Microsoft Jet-Datenbankmodul, Version 2.x, erstellt wurden, werden die Daten immer in der Basistabellenreihenfolge kopiert.
PrevFormatCompactWithUNICODECompression Microsoft Jet 4.0-Datenbanken verwenden zum Speichern von Textdaten den Unicode-Zeichensatz. Die Leistung der Datenbank kann durch Komprimieren der Unicode-Daten erheblich verbessert werden, da später weniger Lese/Schreiboperationen von Seiten erforderlich sind.

Dieser Schlüssel legt fest, ob Datenbanken, die vom Microsoft Jet-Datenbankmodul, Version 3.x oder früher, erstellt wurden, mit komprimiertem Unicode oder unkomprimiertem Unicode erstellt werden.

Anmerkung Diese Einstellung bezieht sich nicht auf das Komprimieren von Microsoft Jet 4.0-Datenbanken. Micrososft Jet 4.0-Datenbanken behalten standardmäßig die Komprimierungseinstellungen bei, mit denen sie erstellt wurden.

Im Ordner Jet\4.0\Engines\Jet 4.0 sind Initialisierungseinstellungen für das Datenbankmodul msjet40.dll enthalten, die für den Zugriff auf Microsoft Access-Datenbanken benötigt werden. Typische Initialisierungseinstellungen für die Einträge in diesem Ordner sind:

FlushTransactionTimeout=500

LockDelay=100

LockRetry=20

MaxBufferSize= 0

MaxLocksPerFile= 9500

PageTimeout=5000

Threads=3

UserCommitSync=Yes

ImplicitCommitSync=No

ExclusiveAsyncDelay=2000

SharedAsyncDelay=0

RecycleLVs=0

PagesLockedToTableLock=0

Das Microsoft Jet-Datenbankmodul verwendet folgende Einträge.

Eintrag | Beschreibung
PageTimeout | Die Zeitspanne zwischen dem Speichern von nicht mit einem Leseschutz versehenen Daten in einem internen Puffer und einer Zeitangabe zur Ungültigkeit dieser Daten. Der Wert wird in Einheiten von 100 Millisekunden angegeben. Die Voreinstellung ist 5000 Millisekunden (5 Sekunden). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
FlushTransaction
Timeout 		Dieser Eintrag deaktiviert die Registrierungseinträge ExclusiveAsyncDelay und SharedAsyncDelay. Die Einträge werden aktiviert, wenn der Wert 0 eingegeben wird. FlushTransactionTimeout verändert die Methode, mit der das Microsoft Jet-Datenbankmodul asynchrone Schreibvorgänge in einer Datenbankdatei durchführt. Zuvor hat das Microsoft Jet-Datenbankmodul ExclusiveAsyncDelay oder SharedAsyncDelay verwendet, um zu bestimmen, wie lange gewartet wird, bevor der asynchrone Schreibvorgang durchgesetzt wurde. FlushTransactionTimeout verändert das Verhalten insofern, dass ein Wert die asynchronen Schreibvorgänge nur dann startet, wenn ein bestimmter Zeitraum vergangen ist und dem Cache keine Seiten hinzugefügt wurden. Die einzige Ausnahme ist, wenn MaxBufferSize den Cache-Speicher überfüllt und somit der Cache einen asynchronen Schreibvorgang unabhängig von der Zeitspanne startet. Daraus folgt, dass das Microsoft Jet 4.0-Datenbankmodul 500 Millisekunden wartet oder bis der Cache-Speicher voll ist, bevor ein asynchroner Schreibvorgang gestartet wird.
LockDelay | Diese Einstellung funktioniert zusammen mit der Einstellung LockRetry, so dass LockRetry 100 Millisekunden wartet, bis es eine neue Sperranfrage ausgibt. Die Einstellung LockDelay wurde hinzugefügt, um "platzen" zu verhindern, was in einigen Netzwerkbetriebssystemen auftreten konnte.
MaxLocksPerFile | Diese Einstellung verhindert, dass Transaktionen in Microsoft Jet den angegebenen Wert übersteigen. Wenn die Sperrungen in einer Transaktion diesen Wert zu übersteigen versuchen, wird die Transaktion in zwei oder mehr Teile geteilt und teilweise übergeben. Die Einstellung wurde hinzugefügt, um zu verhindern, dass Netware 3.1-Server zusammenbrechen, wenn die angegebenen Netware-Sperrgrenze überschritten wurde, und um das Leistungsverhalten von Netware und Windows NT zu verbessern.
LockRetry | Gibt an, wie oft versucht wird, auf eine gesperrte Seite zuzugreifen, bevor eine Meldung über einen Sperrkonflikt zurückgegeben wird. Die Voreinstellung ist 20. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
RecycleLVs Wenn diese Einstellung aktiviert ist, wiederverwertet Microsoft Jet Seiten mit Werten vom Typ Long (Memo, Long Binary [OLE-Objekt] und Daten vom Typ Binary). Microsoft Jet 3.0 kann diese Seitentypen nur wiederverwerten, wenn alle Benutzer die Datenbank geschlossen haben. Wenn die Einstellung RecyleLVs aktiviert ist, beginnt Microsoft Jet 4.0 die Mehrzahl der LV-Seiten wiederzuverwerten, wenn die Datenbank erweitert wird (d. h., wenn Gruppen von Seiten hinzugefügt werden).

Anmerkung Wenn diese Funktion aktiviert ist, wird bei Werten des Datentyps Long die Leistung verlangsamt. Microsoft Access 97 aktiviert und deaktiviert diese Funktion automatisch, wenn Module, Formulare und Berichte bearbeitet werden, so dass sie nicht explizit aktiviert werden muss, wenn diese Objekte verändert werden. Der Standardwert ist 0. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
MaxBufferSize Die Größe des internen Puffers des Datenbankmoduls, gemessen in Kilobytes (KB). MaxBufferSize muss ein ganzzahliger Wert größer oder gleich 512 sein. Die Voreinstellung errechnet sich aus folgender Formel:

((GesamtRAM in MB - 12 MB) / 4) + 512 KB

Auf einem Computer mit 32 MB RAM lautet die voreingestellte Puffergröße ((32 MB - 12 MB) / 4) + 512 KB, also 5632 KB. Um den Standardwert zu verwenden, setzen Sie den Registrierungsschlüssel auf

MaxBufferSize=

Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
Threads | Die Anzahl der Hintergrund-Threads, die dem Microsoft Jet-Datenbankmodul zur Verfügung stehen. Die Voreinstellung ist 3. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
UserCommitSync | Gibt an, ob das System auf ein explizites "Übernehmen" (Commit) wartet, um den Vorgang abzuschließen. Der Wert "Yes" (Ja) weist das System an, zu warten, der Wert "No" (Nein) weist das System an, Daten asynchron zu übernehmen. Die Voreinstellung ist "Yes" (Ja). Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
ImplicitCommitSync | Gibt an, ob das System auf ein explizites "Übernehmen" (Commit) wartet, um den Vorgang abzuschließen. Der Wert "No" (Nein) weist das System an, ohne auf das "Übernehmen" zu warten, fortzufahren, der Wert "Yes" (Ja) weist das System an, auf die Übernahme zu warten. Die Voreinstellung ist No. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und vom Typ REG_SZ für Windows NT 3.51.
ExclusiveAsyncDelay | Gibt an, wie lange (in Millisekunden) für eine exklusiv geöffnete Datenbank ein asynchroner Schreibvorgang auf die Festplatte verzögert wird. Die Voreinstellung ist 2000 (2 Sekunden). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
SharedAsyncDelay | Gibt an, wie lange (in Millisekunden) für eine exklusiv geöffnete Datenbank ein asynchroner Schreibvorgang auf die Festplatte verzögert wird. Der Standardwert ist 0. Werte sind vom Typ DWORD-Wertfür Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
PagesLockedToTableLock Bei größeren Operationen ist es häufig effizienter, die ganze Tabelle zu sperren, anstatt Sperrungen für jede einzelne Seite der Tabelle anzufordern, wenn Sie darauf zugreifen.

Diese Einstellung gibt die Anzahl der Seiten an, deren Sperrung Microsoft Jet für eine bestimmte Transaktion erlaubt, bevor auf eine exklusive Tabellensperrung übergegangen wird.

Der Standardwert von 0 gibt an, dass niemals ein automatischer Wechsel von Seitensperrung zu Tabellensperrung erfolgen soll.

Anmerkung Verwenden Sie diese Einstellung mit Vorsicht. Wenn mehrere Benutzer auf eine Datenbank zugreifen müssen, kann die Sperrung einer ganzen Tabelle zu Sperrungskonflikten für andere Benutzer führen. Dies ist besonders dann gravierend, wenn eine kleine Zahl für diese Einstellung verwendet wurde. Auch wenn eine größere Zahl verwendet wird, wie z. B. 25 oder 50, wird der Vorgang für den Benutzer nicht vorhersagbar.

Replikationseinstellungen für das Microsoft Jet-Datenbankmodul

Der Schlüssel Jet\4.0\Transporter enthält Initialisierungseinstellungen for Jet-Replikationssynchronisierungen mit dem Jet Synchronizer. Diese Einstellungen legen die Reihenfolge fest, die für bestimmte Transporte bei den Synchronisierungen mit dem Synchronizer verwendet wird. Gültige Werte sind 0 - 100. Ein Wert von 0 bedeutet, dass kein Transport versucht werden soll. Alle Transporttypen mit Werten ungleich Null werden in ansteigender Reihenfolge der Schlüsselwerte durchgeführt, bis ein Transport die Synchronisierung erfolgreich durchführt oder alle Versuche fehlschlagen.

Typische Initialisierungseinstellungen für die Einträge in diesem Ordner sind:

Priority_FS=1

Priority_Internet=2

Priority_direct=3

Das Microsoft Jet-Datenbankmodul verwendet folgende Prioritätseinträge:

Eintrag | Beschreibung
Priority_FS | Die (indirekte) Synchronisierung des Dateisystems setzt einen mehrfachen Nachrichtenaustausch zwischen Replikaten voraus. Der Synchronizer, der jedes der Replikate verwaltet, sammelt Änderungen in "Nachrichtendateien" (*.msg-Dateien), die anschließend in einen freigegebenen Ordner kopiert werden, der als Ablageordner bezeichnet wird. Der Partner-Synchronizer verwendet diesen Ordner, auf den über das Dateisystem zugegriffen werden kann.
Priority_Internet | Die (indirekte) Internet-Synchronisierung setzt einen mehrfachen Nachrichtenaustausch zwischen Replikaten voraus. Nur das Replikat, das vom Synchronizer auf dem Internet-Server verwaltet wird, besitzt einen Ablageordner, auf den über eine HTTP- oder FTP-Verbindung zugegriffen werden kann.
Priority_direct | Direkte Synchronisierung ist der Vorgang des Austausches von Daten und Entwurfsänderungen zwischen zwei Mitgliedern einer Replikatgruppe, die entweder auf dem gleichen Computer oder über ein Netzwerk direkt verbunden sind. Der Synchronizer öffnet beide Datenbanken.

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Initialisieren des Treibers für das Microsoft Jet-Datenbankmodul in der Version 3.5

Wenn Sie den Treiber für das Microsoft® Jet-Datenbankmodul, Version 3.5, installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft Windows®-Registrierung unter den Teilschlüsseln Engines und Isam Formats ein. Verwenden Sie den Registrierungseditor, um Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format für den Microsoft Jet-Datenbankmodul-Treiber werden in den folgenden Abschnitten beschrieben.

Initialisierungseinstellungen für das Microsoft Jet-Datenbankmodul

Im Ordner Jet\4.0\Engines\Jet 3.x sind Initialisierungseinstellungen für den Treiber msrd3x40.dll enthalten, der für den Zugriff auf Microsoft Access 97-Arbeitsblätter benötigt wird. Typische Initialisierungseinstellungen für die Einträge in diesem Ordner sind:

win32=<path>\ msrd3x40.dll

FlushTransactionTimeout=500

LockDelay=100

LockRetry=20

MaxBufferSize= 0

MaxLocksPerFile= 9500

PageTimeout=5000

Threads=3

UserCommitSync=Yes

ImplicitCommitSync=No

ExclusiveAsyncDelay=2000

SharedAsyncDelay=0

RecycleLVs=0

SortMemorySource=0

Das Microsoft Jet-Datenbankmodul verwendet folgende Einträge.

Eintrag | Beschreibung
win32 | Der Pfad des Datenbankmodultreibers (.dll). Der Pfadname wird bei der Installation bestimmt. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
PageTimeout | Die Zeitspanne zwischen dem Speichern von nicht mit einem Leseschutz versehenen Daten in einem internen Puffer und der Ungültigkeit dieser Daten. Der Wert wird in Einheiten von 100 Millisekunden angegeben. Die Voreinstellung ist 5000 Millisekunden (5 Sekunden). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
FlushTransactionTimeout | Dieser Eintrag deaktiviert die Registrierungseinträge ExclusiveAsyncDelay und SharedAsyncDelay. Die Einträge werden aktiviert, wenn der Wert 0 eingegeben wird. FlushTransactionTimeout verändert die Methode, mit der das Microsoft Jet-Datenbankmodul asynchrone Schreibvorgänge in einer Datenbankdatei durchführt. Zuvor hat das Microsoft Jet-Datenbankmodul ExclusiveAsyncDelay oder SharedAsyncDelay verwendet, um zu bestimmen, wie lange gewartet wird, bevor der asynchrone Schreibvorgang durchgesetzt wurde. FlushTransactionTimeout verändert das Verhalten insofern, dass ein Wert die asynchronen Schreibvorgänge nur dann startet, wenn ein bestimmter Zeitraum vergangen ist und dem Cache keine Seiten hinzugefügt wurden. Die einzige Ausnahme ist, wenn MaxBufferSize den Cache-Speicher überfüllt und somit der Cache einen asynchronen Schreibvorgang unabhängig von der Zeitspanne startet. Daraus folgt, dass das Microsoft Jet 3.5-Datenbankmodul 500 Millisekunden wartet oder bis der Cache-Speicher voll ist, bevor ein asynchroner Schreibvorgang gestartet wird.
LockDelay | Diese Einstellung funktioniert zusammen mit der Einstellung LockRetry, so dass LockRetry 100 Millisekunden wartet, bis es eine neue Sperranfrage ausgibt. Die Einstellung LockDelay wurde hinzugefügt, um "platzen" zu verhindern, was in einigen Netzwerkbetriebssystemen auftreten konnte.
MaxLocksPerFile | Diese Einstellung verhindert, dass Transaktionen in Microsoft Jet den angegebenen Wert übersteigen. Wenn die Sperrungen in einer Transaktion diesen Wert zu übersteigen versuchen, wird die Transaktion in zwei oder mehr Teile geteilt und teilweise übergeben. Die Einstellung wurde hinzugefügt, um zu verhindern, dass Netware 3.1-Server zusammenbrechen, wenn die angegebenen Netware-Sperrgrenze überschritten wurde, und um das Leistungsverhalten von Netware und Windows NT zu verbessern.
LockRetry | Gibt an, wie oft versucht wird, auf eine gesperrte Seite zuzugreifen, bevor eine Meldung über einen Sperrkonflikt zurückgegeben wird. Die Voreinstellung ist 20. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
RecycleLVs Wenn diese Einstellung aktiviert ist, wiederverwertet Microsoft Jet Seiten mit Werten vom Typ Long (Memo, Long Binary [OLE-Objekt] und Daten vom Typ Binary). Microsoft Jet 3.0 kann diese Seitentypen nur wiederverwerten, wenn alle Benutzer die Datenbank geschlossen haben. Wenn die Einstellung RecyleLVs aktiviert ist, beginnt Microsoft Jet 3.5 die Mehrzahl der LV-Seiten wiederzuverwerten, wenn die Datenbank erweitert wird (d. h., wenn Gruppen von Seiten hinzugefügt werden).

Anmerkung Wenn diese Funktion aktiviert ist, wird bei Werten des Datentyps Long die Leistung verlangsamt. Microsoft Access 97 aktiviert und deaktiviert diese Funktion automatisch, wenn Module, Formulare und Berichte bearbeitet werden, so dass sie nicht explizit aktiviert werden muss, wenn diese Objekte verändert werden. Der Standardwert ist 0. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
MaxBufferSize Die Größe des internen Puffers des Datenbankmoduls, gemessen in Kilobytes (KB). MaxBufferSize muss ein ganzzahliger Wert größer oder gleich 512 sein. Die Voreinstellung errechnet sich aus folgender Formel:

((GesamtRAM in MB -12 MB) / 4) + 512 KB

Auf einem Computer mit 32 MB RAM lautet die voreingestellte Puffergröße ((32 MB - 12 MB) / 4) + 512 KB, also 5632 KB. Um den Standardwert zu verwenden, setzen Sie den Registrierungsschlüssel auf

MaxBufferSize=

Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
Threads | Die Anzahl der Hintergrund-Threads, die dem Microsoft Jet-Datenbankmodul zur Verfügung stehen. Die Voreinstellung ist 3. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
UserCommitSync | Gibt an, ob das System auf ein explizites "Übernehmen" (Commit) wartet, um den Vorgang abzuschließen. Der Wert "Yes" (Ja) weist das System an, zu warten, der Wert "No" (Nein) weist das System an, Daten asynchron zu übernehmen. Die Voreinstellung ist "Yes" (Ja). Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
ImplicitCommitSync | Gibt an, ob das System auf ein explizites "Übernehmen" (Commit) wartet, um den Vorgang abzuschließen. Der Wert "No" (Nein) weist das System an, ohne auf das "Übernehmen" zu warten, fortzufahren, der Wert "Yes" (Ja) weist das System an, auf die Übernahme zu warten. Die Voreinstellung ist No. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und vom Typ REG_SZ für Windows NT 3.51.
ExclusiveAsyncDelay | Gibt an, wie lange (in Millisekunden) für eine exklusiv geöffnete Datenbank ein asynchroner Schreibvorgang auf die Festplatte verzögert wird. Die Voreinstellung ist 2000 (2 Sekunden). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
SharedAsyncDelay | Gibt an, wie lange (in Millisekunden) für eine exklusiv geöffnete Datenbank ein asynchroner Schreibvorgang auf die Festplatte verzögert wird. Der Standardwert ist 0. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
SortMemorySource | Gibt an, wie Microsoft Jet den Speicher erhält, der für Sortierschlüssel verwendet wird. Ein Wert von 0 gibt an, dass Speicher vom Heap verwendet werden soll. Ein Wert von 1 gibt an, dass Speicher vom globalen Speicher unter Verwendung des Funktionsaufrufs malloc zugewiesen werden soll.

ISAM-Formate des Microsoft Jet-Datenbankmoduls

Der Ordner Jet\4.0\ISAM Formats\Jet 3.x enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Jet 3.x
OneTablePerFile | REG_BINARY | Binärwert | 00
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 0

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Initialisieren des Treibers für das Microsoft Jet-Datenbankmodul in der Version 2,5

Initialisieren des Treibers für das Microsoft Jet-Datenbankmodul in der Version 2.5

Wenn Sie den Treiber für das Microsoft® Jet-Datenbankmodul, Version 2.5, installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft Windows®-Registrierung unter den Teilschlüsseln Engines und Isam Formats ein. Verwenden Sie den Registrierungseditor, um Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format für den Microsoft Jet-Datenbankmodul-Treiber werden in den folgenden Abschnitten beschrieben.

Initialisierungseinstellungen für das Microsoft Jet-Datenbankmodul

Im Ordner Jet\4.0\Engines\Jet 2.x sind Initialisierungseinstellungen für den Treiber msexcl40.dll enthalten, der für den Zugriff auf Microsoft Access 2.0-Arbeitsblätter benötigt wird. Typische Initialisierungseinstellungen für die Einträge in diesem Ordner sind:

win32=<path>\ msrd2x40.dll

PageTimeout=5

LockedPageTimeout=5

CursorTimeout=5

LockRetry=20

CommitLockRetry=20

MaxBufferSize=512

ReadAheadPages=16

IdleFrequency=10

ForceOsFlush = 0

Die folgenden Einträge werden zur Konfiguration des Microsoft Jet-Datenbankmoduls verwendet.

Eintrag | Beschreibung
win32 | Der Pfad des Datenbankmodultreibers (.dll). Der Pfadname wird bei der Installation bestimmt. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
PageTimeout | Die Zeitspanne zwischen dem Speichern von nicht mit einem Leseschutz versehenen Daten in einem internen Puffer und der Ungültigkeit dieser Daten. Der Wert wird in Einheiten von 100 Millisekunden angegeben. Die Voreinstellung ist 5 Einheiten (oder 0,5 Sekunden). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
LockedPageTimeout | Die Zeitspanne zwischen dem Speichern von mit einem Leseschutz versehenen Daten in einem internen Puffer und deren Ungültigkeit. Der Wert wird in Einheiten von 100 Millisekunden angegeben. Die Voreinstellung ist 5 Einheiten (oder 0,5 Sekunden). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
CursorTimeout | Die Zeitspanne, für die ein Verweis auf eine Seite bestehen bleibt. Eine Einheit entspricht 100 Millisekunden. Die Voreinstellung ist 5 Einheiten (oder 0,5 Sekunden). Diese Einstellung betrifft nur Datenbanken, die mit der Version 1.x des Microsoft Jet-Datenbankmoduls erstellt wurden. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
LockRetry | Gibt an, wie oft versucht wird, auf eine gesperrte Seite zuzugreifen, bevor eine Meldung über einen Sperrkonflikt zurückgegeben wird. LockRetry steht mit CommitLockRetry in Beziehung. Werte sind vom Typ DWORD für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
CommitLockRetry Gibt an, wie oft das Microsoft Jet-Datenbankmodul versucht, Daten zu sperren, um Änderungen an den Daten zu übernehmen. Wenn das Microsoft Jet-Datenbankmodul keine Übernahmesperre erhalten kann, sind Änderungen an den Daten nicht möglich.

Die Anzahl der Versuche des Microsoft Jet-Datenbankmoduls, um eine Übernahmesperre zu erhalten, steht in direktem Zusammenhang mit dem Wert für LockRetry. Für jeden Versuch, eine Übernahmesperre zu erhalten, unternimmt das Microsoft Jet-Datenbankmodul mehrere Versuche, deren Anzahl durch den Wert von LockRetry angegeben wird. Wenn CommitLockRetry und LockRetry z. B. beide auf 20 eingestellt sind, versucht das Microsoft Jet-Datenbankmodul 20 mal, eine Übernahmesperre zu erhalten; für jeden dieser Versuche unternimmt das Microsoft Jet-Datenbankmodul dann wieder 20 neue Versuche, insgesamt also 400 Versuche.

Die Voreinstellung für CommitLockRetry ist 20. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
MaxBufferSize | Die Größe des internen Puffers des Datenbankmoduls, gemessen in Kilobytes (KB). MaxBufferSize muss ein ganzzahliger Wert zwischen 9 und 4096 sein. Die Voreinstellung ist 512. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
ReadAheadPages | Die Anzahl an Seiten, die beim sequentiellen Durchsuchen im voraus gelesen werden. Die Voreinstellung ist 16. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
ForceOSFlush | Jede Einstellung, die nicht 0 ist, bedeutet, dass ein Übernahme- oder Schreibvorgang aus dem Cache des Betriebssystems auf die Festplatte übertragen wird. Die Einstellung 0 (Voreinstellung) bedeutet, dass keine Übertragung vorgenommen wird. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
IdleFrequency | Die Zeitspanne in Einheiten zu 100 Millisekunden, nach der Microsoft Jet eine Lesesperrung wieder aufhebt. Die Voreinstellung ist 10 Einheiten (eine Sekunde). Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.

ISAM-Formate des Microsoft Jet-Datenbankmoduls

Der Ordner Jet\4.0\ISAM Formats\Jet 2.x enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Jet 2.x
OneTablePerFile | REG_BINARY | Binärwert | 00
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 0

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Initialisieren des Paradox-Datenbanktreibers

Wenn Sie den Paradox-Datenbanktreiber installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft® Windows®-Registrierung unter den Teilschlüsseln Engines und ISAM Formats ein. Ändern Sie diese Einstellungen nur direkt, wenn es unbedingt erforderlich ist. Verwenden Sie das Setup-Programm Ihrer Anwendung, um diese Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format für den Paradox-Datenbanktreiber werden in den folgenden Abschnitten beschrieben.

Der Paradox-Datenbanktreiber arbeitet abhängig davon, ob die Borland Database Engine (BDE) installiert ist, in einem von zwei Modi. Paradox-Daten sind nur mit der BDE aktualisierbar. Ohne die BDE können die Paradox-Daten schreibgeschützt gelesen, exportiert oder verknüpft werden.

Paradox-Initialisierungseinstellungen

Im Ordner Jet\4.0\Engines\Paradox sind Initialisierungseinstellungen für den Treiber mspdox40.dll enthalten, der für den Zugriff auf externe Paradox-Daten benötigt wird. Typische Einstellungen für die Einträge in diesem Ordner sind:

win32=<path>\ mspbde40.dll

PageTimeout=600

CollatingSequence=ASCII

DataCodePage=OEM

ParadoxUserName=Kimberly

ParadoxNetPath=P:\PDOXDB

ParadoxNetStyle=4.X

Das Microsoft Jet-Datenbankmodul verwendet die Einträge im Ordner Paradox wie folgt.

Eintrag | Beschreibung
win32 | Der Pfad der Datei mspbde40.dll. Der vollständige Pfad wird bei der Installation bestimmt. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
PageTimeout | Die Zeitspanne zwischen dem Speichern von Daten in einem internen Puffer und ihre Ungültigkeit. Der Wert wird in Einheiten von 100 Millisekunden angegeben. Die Voreinstellung ist 600 Einheiten oder 60 Sekunden. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
CollatingSequence Diese Einstellung wird nur verwendet, wenn die BDE nicht auf dem Computer vorhanden ist.

Die Sortierreihenfolge für alle Paradox-Tabellen, die mit dem Microsoft Jet-Datenbankmodul erstellt oder geöffnet wurden. Die möglichen Werte sind ASCII, International, Norwegian-Danish und Swedish-Finnish. Der Wert für CollatingSequence muss mit der Sortierreihenfolge übereinstimmen, die beim Erstellen der Paradox-Tabelle verwendet wurde. Die Voreinstellung ist ASCII. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
DataCodePage Diese Einstellung wird nur verwendet, wenn die BDE nicht auf dem Computer vorhanden ist.

Ein Indikator, der anzeigt, wie Textseiten gespeichert werden. Folgende Einstellungen sind möglich.

  • OEM: OemToAnsi- und AnsiToOem-Umwandlungen werden durchgeführt.
  • ANSI: OemToAnsi- und AnsiToOem-Umwandlungen werden nicht durchgeführt.

Die Voreinstellung ist OEM. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
ParadoxUserName Der Name, der von Paradox angezeigt wird, wenn eine Tabelle durch die Paradox-ISAM gesperrt ist und ein interaktiver Benutzer auf die Daten aus Paradox (anstatt per ISAM) zugreift und versucht, eine inkompatible Sperre zu setzen. Dieser Eintrag wird nicht von Setup hinzugefügt. Sie müssen diesen Eintrag erstellen. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.

Anmerkung Wenn Sie einen Wert für ParadoxUserName angeben, geben Sie auch einen Wert für ParadoxNetPath und ParadoxNetStyle an, ansonsten erhalten Sie eine Fehlermeldung, wenn Sie versuchen, auf externe Paradox-Daten zuzugreifen. Wenn Sie in einem Netzwerk im Mehrbenutzermodus versuchen, auf eine Paradox-Datenbank zuzugreifen, müssen Sie diesen Registrierungseintrag manuell hinzufügen oder verändern.
ParadoxNetPath Der vollständige Pfad zu dem Verzeichnis, das die Datei PARADOX.NET (für Paradox 3.x) oder PDOXUSRS.NET (für Paradox 4.x) enthält. Dieser Eintrag wird nicht von Setup hinzugefügt. Sie müssen diesen Eintrag erstellen. Der vollständige Wert für ParadoxNetPath (mit Laufwerkbuchstaben) muss für alle Benutzer einheitlich sein, die eine bestimmte Datenbank (Verzeichnis) gemeinsam nutzen. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.

Anmerkung Wenn Sie einen Wert für ParadoxNetPath angeben, geben Sie auch einen Wert für ParadoxUserName und ParadoxNetStyle an, ansonsten erhalten Sie eine Fehlermeldung, wenn Sie versuchen, auf externe Paradox-Daten zuzugreifen. Wenn Sie in einem Netzwerk im Mehrbenutzermodus versuchen, auf eine Paradox-Datenbank zuzugreifen, müssen Sie diesen Registrierungseintrag manuell hinzufügen oder verändern.
ParadoxNetStyle Die Art, wie auf das Netzwerk zugegriffen wird, wenn Paradox-Daten verwendet werden. Die möglichen Werte sind:
  • 3.x
  • 4.x

Anmerkung Paradox 3.x-Benutzer können diesen Wert nicht auf 4.x festlegen, da der Treiber dann die falsche Sperrmethode verwendet. Paradox 5.0-Benutzer müssen für ParadoxNetStyle die Einstellung 4.x verwenden, um ein ordnungsgemäßes Sperrverhalten sicherzustellen.

Dieser Eintrag wird nicht von Setup hinzugefügt. Sie müssen diesen Eintrag erstellen. Dieser Eintrag sollte der Paradox-Version entsprechen, die die Benutzer in der Gruppe verwenden. Die Einstellung muss für alle Benutzer gleich sein, die eine bestimmte Datenbank (oder ein Verzeichnis) gemeinsam nutzen. Die Voreinstellung ist 4.x. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.

Anmerkung Wenn Sie einen Wert für ParadoxNetStyle angeben, geben Sie auch einen Wert für ParadoxUserName und ParadoxNetPath an, ansonsten erhalten Sie eine Fehlermeldung, wenn Sie versuchen, auf externe Paradox-Daten zuzugreifen.

Paradox ISAM-Formate

Der Ordner Jet\4.0\ISAM Formats\Paradox 3.x enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Paradox
ExportFilter | REG_SZ | Zeichenfolge | Paradox 3 (*.db)
ImportFilter | REG_SZ | Zeichenfolge | Paradox (*.db)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 01
IsamType | REG_DWORD | DWORD-Wert | 0
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextImport | REG_SZ | Zeichenfolge | Importieren von Daten aus der externen Datei in die aktuelle Datenbank. Das Ändern der Daten in der aktuellen Datenbank ändert nicht die Daten in der externen Datei.
ResultTextLink | REG_SZ | Zeichenfolge | Erstellen einer Tabelle in der aktuellen Datenbank, die mit der externen Datei verknüpft ist. Das Ändern der Daten in der aktuellen Datenbank ändert die Daten in der externen Datei.
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Microsoft Paradox 3-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 00

Der Ordner Jet\4.0\ISAM Formats\Paradox 4.x enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Paradox
ExportFilter | REG_SZ | Zeichenfolge | Paradox 4 (*.db)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 01
IsamType | REG_DWORD | DWORD-Wert | 0
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Microsoft Paradox 4-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 00

Der Ordner Jet\4.0\ISAM Formats\Paradox 5.x enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Paradox
ExportFilter | REG_SZ | Zeichenfolge | Paradox 5 (*.db)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 01
IsamType | REG_DWORD | DWORD-Wert | 0
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Microsoft Paradox 5-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 00

Der Ordner Jet\4.0\ISAM Formats\Paradox 7.x enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Paradox
ExportFilter | REG_SZ | Zeichenfolge | Paradox 7 (*.db)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 01
IsamType | REG_DWORD | DWORD-Wert | 0
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Microsoft Paradox 7-Datei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 00

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Initialisieren des Treibers für Text- und HTML-Dataquellen

Der gleiche Datenbanktreiber wird sowohl für Text- als auch für HTML-Datenquellen verwendet.

Wenn Sie den Treiber für Text-Datenquellen installieren, trägt das Setup-Programm eine Reihe von Standardwerten in die Microsoft® Windows®-Registrierung unter den Teilschlüsseln Engines und Isam Formats ein. Ändern Sie diese Einstellungen nicht direkt. Verwenden Sie das Setup-Programm Ihrer Anwendung, um diese Einstellungen hinzuzufügen, zu entfernen oder zu ändern. Die Initialisierung und die Einstellungen für das ISAM-Format des Treibers für Text-Datenquellen werden in den folgenden Abschnitten beschrieben.

Initialisierungseinstellungen für Text-Datenquellen

Im Ordner Jet\4.0\Engines\Text sind Initialisierungseinstellungen für den Treiber Mstext35.dll enthalten, der für den Zugriff auf externe Textdaten benötigt wird. Typische Einstellungen für die Einträge in diesem Ordner sind:

win32=<path>\ mstext40.dll

MaxScanRows=25

FirstRowHasNames=True

CharacterSet= ANSI

Format=CSVDelimited

Extensions= txt,csv,tab,asc

ExportCurrencySymbols=Yes

Das Microsoft Jet-Datenbankmodul verwendet die Einträge im Text wie folgt.

Eintrag | Beschreibung
win32 | Der Pfad der Datei mstext40.dll. Der vollständige Pfad wird bei der Installation bestimmt. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
MaxScanRows | Anzahl der untersuchten Zeilen, wenn die möglichen Spaltentypen bestimmt werden. Wenn der Wert 0 ist, wird die gesamte Datei durchsucht. Die Voreinstellung ist 25. Werte sind vom Typ DWORD-Wert für Windows 95 und Windows NT 4.0 und vom Typ REG_DWORD für Windows NT 3.51.
FirstRowHasNames | Ein binärer Wert, der bestimmt, ob die erste Zeile der Tabelle Spaltennamen enthält. Der Wert 01 gibt an, dass während des Importierens die Spaltennamen aus der ersten Zeile genommen werden. Der Wert 00 zeigt an, dass in der ersten Zeile keine Spaltennamen sind. Die Voreinstellung ist 1. Werte sind vom Typ Binärwert für Windows 95 und Windows NT 4.0 und vom Typ REG_BINARY für Windows NT 3.51.
CharacterSet Ein Indikator, der anzeigt, wie Textseiten gespeichert werden. Folgende Einstellungen sind möglich.
  • ANSI: Die ANSI-Codeseite des Computers. AnsiToUnicode- und UnicodeToAnsi-Umwandlungen werden durchgeführt.
  • OEM: Die OEM-Codeseite des Computers. OemToUnicode- und UnicodeToOem-Umwandlungen werden durchgeführt.
  • Unicode: Codeseitenumwandlungen werden nicht durchgeführt.
  • <Dezimalzahl>: Die Codeseitennummer eines bestimmten Zeichensatzes. Umwandlungen in und aus Unicode werden durchgeführt.

Die Voreinstellung ist ANSI. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
Format | Kann auf einen der folgenden Werte festgelegt werden: TabDelimited, CSVDelimited, Delimited (<einzelnes Zeichen>). Das einzelne Zeichen im Format für Delimited kann ein beliebiges Zeichen mit Ausnahme des Anführungszeichens (") sein. Die Voreinstellung ist CSVDelimited. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
Extensions | Die Namenserweiterung beliebiger Dateien, die durchsucht werden, wenn nach Daten in Textdateien gesucht wird. Die Voreinstellung ist txt, csv, tab, asc. Werte sind vom Typ Zeichenfolge für Windows 95 und Windows NT 4.0 und für Windows NT 3.51 vom Typ REG_SZ.
ExportCurrencySymbols | Ein boolscher Wert, der anzeigt, ob das entsprechende Währungssymbol mit ausgegeben wird, wenn Währungsfelder exportiert werden. Ein Wert von 01 zeigt an, dass das Symbol einbezogen wird. Ein Wert von 00 zeigt an, dass nur die numerischen Daten importiert werden. Die Voreinstellung ist 01. Werte sind vom Typ Binärwert für Windows 95 und Windows NT 4.0 und vom Typ REG_BINARY für Windows NT 3.51.

ISAM-Formate für Text-Datenquellen

Der Ordner Jet\4.0\ISAM Formats\Text enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Text
ExportFilter | REG_SZ | Zeichenfolge | Textdateien (*.txt; *.csv; *.tab; *.asc)
ImportFilter | REG_SZ | Zeichenfolge | Textdateien (*.txt; *.csv; *.tab; *.asc)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 01
IsamType | REG_DWORD | DWORD-Wert | 2
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextImport | REG_SZ | Zeichenfolge | Importieren von Daten aus der externen Datei in die aktuelle Datenbank. Das Ändern der Daten in der aktuellen Datenbank ändert nicht die Daten in der externen Datei.
ResultTextLink | REG_SZ | Zeichenfolge | Erstellen einer Tabelle in der aktuellen Datenbank, die mit der externen Datei verknüpft ist. Das Ändern der Daten in der aktuellen Datenbank ändert die Daten in der externen Datei.
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Textdatei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

HTML Import ISAM-Formate

Der Ordner Jet\4.0\ISAM Formats\HTML Import enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Text
ImportFilter | REG_SZ | Zeichenfolge | HTML-Dateien (*.ht*)
CanLink | REG_BINARY | Binärwert | 01
OneTablePerFile | REG_BINARY | Binärwert | 00
IsamType | REG_DWORD | DWORD-Wert | 2
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextImport | REG_SZ | Zeichenfolge | Importieren von Daten aus der externen Datei in die aktuelle Datenbank. Das Ändern der Daten in der aktuellen Datenbank ändert nicht die Daten in der externen Datei.
ResultTextLink | REG_SZ | Zeichenfolge | Erstellen einer Tabelle in der aktuellen Datenbank, die mit der externen Datei verknüpft ist. Das Ändern der Daten in der aktuellen Datenbank ändert die Daten in der externen Datei.
SupportsLongNames | REG_BINARY | Binärwert | 01

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

HTML Export ISAM-Formate

Der Ordner Jet\4.0\ISAM Formats\HTML Export enthält folgende Einträge.

Eintrag | Typ für Windows NT 3.51 | Typ für Windows 95 und Windows NT 4.0 | Wert
Engine | REG_SZ | Zeichenfolge | Text
ExportFilter | REG_SZ | Zeichenfolge | HTML-Dateien (*.htm)
CanLink | REG_BINARY | Binärwert | 00
OneTablePerFile | REG_BINARY | Binärwert | 01
IsamType | REG_DWORD | DWORD-Wert | 2
IndexDialog | REG_BINARY | Binärwert | 00
CreateDBOnExport | REG_BINARY | Binärwert | 00
ResultTextExport | REG_SZ | Zeichenfolge | Exportieren von Daten aus der aktuellen Datenbank in eine Textdatei. Dieser Prozess überschreibt die Daten, wenn in eine existierende Datei exportiert wird.
SupportsLongNames | REG_BINARY | Binärwert | 01

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Anpassen der Datei Schema.ini für Text- und HTML-Daten

Sie können nur Text- oder HTML-Daten lesen, importieren oder exportieren, wenn Sie außer den Informationen zu Text-ISAM in der .INI-Datei die Datei Schema.ini erstellen. Schema.ini enthält eine Beschreibung einer Datenquelle: die Formatierung der Textdatei, die Vorgehensweise beim Einlesen während des Imports und die Standard-Exportformate für Dateien. Die folgenden Beispiele zeigen das Layout für die Datei Dateiname.txt mit fester Spaltenbreite:

[Dateiname.txt]

ColNameHeader=False

Format=FixedLength

FixedFormat= RaggedEdge

MaxScanRows=25

CharacterSet=OEM

Col1=Spaltenname Char Width 24

Col2=Spaltenname2 Date Width 9

Col3=Spaltenname7 Float Width 10

Col4=Spaltenname8 Integer Width 10

Col5=Spaltenname9 LongChar Width 10

Analog dazu wird das Format für eine Datei mit Trennzeichen folgendermaßen angegeben.

[Delimit.txt]

ColNameHeader=True

Format=Delimited()

MaxScanRows=0

CharacterSet=OEM

Col1=Benutzername char width 50

Col2=Geburtsdatum Date width 9

Wenn Sie Daten in eine Textdatei mit Trennzeichen exportieren, geben Sie das Format für diese Datei ebenfalls an.

[Export: Mein spezieller Export]

ColNameHeader=True

Format=TabDelimited

MaxScanRows=25

CharacterSet=OEM

DateTimeFormat=mm.dd.yy.hh.mm.ss

CurrencySymbol=Dm

CurrencyPosFormat=0

CurrencyDigits=2

CurrencyNegFormat=0

CurrencyThousandSymbol=,

CurrencyDecimalSymbol=.

DecimalSymbol=,

NumberDigits=2

NumberLeadingZeros=0

TextDelimeter="

Das Beispiel "Eigenes Exportformat" bezieht sich auf eine bestimmte Exportoption; Sie können eine beliebige Kombination von Exportoptionen angeben, während Sie mit der Textdatei verbunden sind. Das letzte Beispiel entspricht auch einem Datenquellennamen (DSN = Data Source Name), der optional übergeben werden kann, während die Verbindung besteht. Alle drei Formatabschnitte können in derselben .INI-Datei angegeben werden.

Das Microsoft Jet-Datenbankmodul verwendet die Einträge in der Datei Schema.ini wie folgt.

Eintrag | Beschreibung
ColNameHeader | Kann entweder den Wert True (wodurch angezeigt wird, dass der erste Datensatz Spaltennamen angibt) oder den Wert False haben.
Format | Kann auf einen der folgenden Werte festgelegt werden: TabDelimited, CSVDelimited, Delimited (<einzelnes Zeichen>) oder FixedLength. Das einzelne Zeichen im Format für Delimited kann ein beliebiges Zeichen mit Ausnahme des Anführungszeichens (") sein.
FixedFormat Wird nur verwendet, wenn das Format FixedLength ist; diese Angabe kann auf einen der folgenden Werte gesetzt werden: RaggedEdge oder TrueFixedLength.

Durch RaggedEdge können Zeilen mit einem Wagenrücklauf-Zeichen abgeschlossen werden.

Bei TrueFixedLength muss jede Zeile eine genaue Anzahl von Zeichen aufweisen; alle Wagenrücklauf-Zeichen, die sich nicht an einer Zeilengrenze befinden, werden als in ein Feld eingebettet behandelt.

Ist diese Einstellung nicht vorhanden, wird RaggedEdge zum Standardwert.
MaxScanRows | Anzahl der untersuchten Zeilen, wenn die möglichen Spaltentypen bestimmt werden. Wenn der Wert 0 ist, wird die gesamte Datei durchsucht.
CharacterSet | Dieser Eintrag kann auf OEM, ANSI, UNICODE oder die Dezimalzahl einer gültigen Codeseite eingestellt werden; er gibt den Zeichensatz der Quelldatei an.
DateTimeFormat | Kann auf eine Formatzeichenfolge festgelegt werden, die Datumsangaben und Uhrzeiten anzeigt. Dieser Eintrag sollte angegeben werden, wenn alle Datum/Zeit-Felder in den importierten/exportierten Daten dasselbe Format haben. Alle Formate des Microsoft Jet-Datenbankmoduls bis auf AM und PM werden unterstützt. Wenn keine Formatzeichenfolge angegeben wird, wird das kurze Datums- und Zeitformat aus der Windows-Systemsteuerung verwendet.
CurrencySymbol | Dieser Eintrag gibt das Währungssymbol an, das für Währungswerte in der Textdatei verwendet werden soll. Die Beispiele zeigen die Währungsangabe DM. Wenn dieser Eintrag fehlt, wird der Standardwert aus der Windows-Systemsteuerung verwendet.
CurrencyPosFormat Kann auf einen der folgenden Werte festgelegt werden.

Währungssymbol-Präfix ohne Trennung (DM1)

Währungssymbol-Suffix ohne Trennung (1DM)

Währungssymbol-Präfix mit einem Trennzeichen (DM 1)

Währungssymbol-Suffix mit einem Trennzeichen (1 DM)

Wenn dieser Eintrag fehlt, wird der Standardwert aus der Windows-Systemsteuerung verwendet.
CurrencyDigits | Gibt die Anzahl der Stellen an, die für den Bruchteil einer Währungsmenge verwendet wird. Wenn dieser Eintrag fehlt, wird der Standardwert aus der Windows-Systemsteuerung verwendet.
CurrencyNegFormat Kann einer der folgenden Werte sein.

($1)

–$1

$–1

$1–

(1$)

–1$

1–$

1$–

–1 $

–$ 1

1 $–

$ 1–

$ –1

1– $

($ 1)

(1 $)

Das Zeichen DM wird lediglich für dieses Beispiel angezeigt, sollte aber durch den entsprechenden Wert für CurrencySymbol im eigentlichen Programm ersetzt werden. Wenn dieser Eintrag fehlt, wird der Standardwert aus der Windows-Systemsteuerung verwendet.
CurrencyThousandSymbol | Legt ein einzelnes Zeichen fest, das verwendet wird, um die Tausenderstelle eines Währungsbetrags in der Textdatei zu trennen. Wenn dieser Eintrag fehlt, wird der Standardwert aus der Windows-Systemsteuerung verwendet.
CurrencyDecimalSymbol | Kann auf ein beliebiges einzelnes Zeichen festgelegt werden, das verwendet wird, um den ganzzahligen Teil eines Währungsbetrags von den Nachkommastellen zu trennen. Wenn dieser Eintrag fehlt, wird der Standardwert aus der Windows-Systemsteuerung verwendet.
DecimalSymbol | Kann auf jedes einzelne Zeichen festgelegt werden, das verwendet wird, um eine Ganzzahl und eine Bruchzahl zu trennen. Wenn dieser Eintrag fehlt, wird der Standardwert aus der Windows-Systemsteuerung verwendet.
NumberDigits | Zeigt die Anzahl der Dezimalstellen im Nachkommateil einer Zahl an. Wenn dieser Eintrag fehlt, wird der Standardwert aus der Windows-Systemsteuerung verwendet.
NumberLeadingZeros | Gibt an, ob ein Dezimalwert, der kleiner als 1 und größer als –1 ist, eine führende Null haben sollte; dieser Wert ist entweder False (keine führende Null) oder True.
Col1, Col2, ... Listet die Spalten in der Textdatei auf, die gelesen werden müssen. Das Format dieses Eintrags sollte wie folgt sein.

Coln=SpaltenName Typ [Width #]

SpaltenName: Spaltennamen mit Leerzeichen dazwischen sollten in Anführungszeichen stehen.

Typ: Möglich sind Bit, Byte, Short, Long, Decimal, Currency, Single, Double, DateTime. Binary, OLE, Text oder Memo.

Die folgenden ODBC-Textreibertypen werden unterstützt.

Char (wie Text)
Float (wie Double)
Integer (wie Short)
LongChar (wie Memo)
Date Dateiformat

Bei einem Memo-Typ kann eine zusätzliche Formatkennung [Attribute Hyperlink] verwendet werden, um die Spalten anzugeben, bei denen es sich in Microsoft Access um aktive URLs handelt.

Bei einem Decimal-Typ sollte die zusätzlichen Formatkennungen [Scale #] Precision #] verwendet werden.

TextDelimiter Kann auf ein beliebiges einzelnes Zeichen eingestellt werden, um Zeichenfolgen zu trennen, die eines der anderen Sonderzeichen enthalten.

Beispiel: "abc","xyz,pqr","hij"

Wenn dieser Eintrag nicht vorhanden ist, wird als Standardtrennzeichen ein doppeltes Anführungszeichen verwendet. Wenn dieser Eintrag die Zeichenfolge "none" ist, werden keine Zeichen als Trennzeichen behandelt.

Anmerkung Wenn Sie die Einstellungen der Datei Schema.ini ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul erneut, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Anpassen des Microsoft Jet-Datenbankmoduls für den Zugriff über ODBC

In den folgenden Abschnitten werden die Einstellungen der Microsoft® Windows®-Registrierung angegeben, die benötigt werden, um das Microsoft Jet-Datenbankmodul mit einer ODBC-Datenbank zu verbinden.

Initialisierungseinstellungen für ODBC-Datenbanken, die mit Microsoft verbunden sind

Der Ordner \HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\ODBC enthält folgende Initialisierungseinstellungen für das Microsoft Jet-Datenbankmodul.

Anmerkung Typische Einstellungen für die Einträge in den Ordner Jet\4.0\Engines\ODBC werden im folgenden Beispiel gezeigt.

LoginTimeout=20

QueryTimeout=60

ConnectionTimeout=600

AsyncRetryInterval=500

AttachCaseSensitive=0

AttachableObjects='TABLE','VIEW','SYSTEM TABLE','ALIAS','SYNONYM'

SnapshotOnly=0

TraceSQLMode=0

TraceODBCAPI=0

DisableAsync=1

TryJetAuth=1

PreparedInsert=0

PreparedUpdate=0

FastRequery=0

FatBlastRows=-1

FatBlastTimeout=3

ODBCISAMAttach=0

Das Microsoft Jet-Datenbankmodul verwendet die ODBC-Einträge wie folgt.

Eintrag | Beschreibung
LoginTimeout | Zeitspanne für die Benutzeranmeldung in Sekunden. Nach Ablauf dieser Zeitspanne wird ein Anmeldeversuch abgebrochen. Die Voreinstellung ist 20 (Werte sind vom Typ REG_DWORD).
QueryTimeout | Zeitspanne in Sekunden, nach der die Ausführung einer Abfrage (gesamte Verarbeitungszeit) abgebrochen wird. Wenn DisableAsync=0 (Voreinstellung) ist, dann ist QueryTimeout die Anzahl an Sekunden, die zwischen zwei Abfragen auf eine Antwort vom Server gewartet wird. Die Voreinstellung ist 60 (Werte sind vom Typ REG_DWORD).
ConnectionTimeout | Zeitspanne in Sekunden, die eine gepufferte Verbindung inaktiv (im Leerlauf) sein darf, bevor sie abgebrochen wird. Die Voreinstellung ist 600 (Werte sind vom Typ REG_DWORD).
AsyncRetryInterval | Zeitspanne zwischen zwei Statusanfragen, durch die bestimmt wird, ob der Server eine Abfrage abgeschlossen hat. Dieser Eintrag wird nur für die asynchrone Verarbeitung benötigt. Die Voreinstellung ist 500 (Werte sind vom Typ REG_DWORD).
AttachCaseSensitive | Ein Anzeiger, der festlegt, ob die Tabellennamen beim Verknüpfen exakt übereinstimmen müssen. Mögliche Werte sind 0 (erste Tabelle mit übereinstimmendem Namen verknüpfen, ungeachtet der Groß/Kleinschreibung) und 1 (nur bei exakter Übereinstimmung verknüpfen). Die Voreinstellung ist 0 (Werte sind vom Typ REG_DWORD).
AttachableObjects | Eine Liste von Server-Objekttypen, die verknüpft werden dürfen. Der Standardwert lautet: 'TABLE', 'VIEW', 'SYSTEM TABLE', 'ALIAS', 'SYNONYM' (die Werte sind vom Typ REG_SZ).
SnapshotOnly | Ein Anzeiger, der festlegt, ob Recordset-Objekte in den Typ Snapshot umgewandelt werden müssen. Mögliche Werte sind 0 (Dynasets zulassen) und 1 (Snapshots durchsetzen). Die Voreinstellung ist 0 (Werte sind vom Typ REG_DWORD).
TraceSQLMode | Ein Anzeiger, der festlegt, ob das Microsoft Jet-Datenbankmodul SQL-Anweisungen, die an eine ODBC-Datenquelle gesendet werden, in SQLOUT.TXT protokolliert. Mögliche Werte sind 0 (nein) und 1 (ja). Die Voreinstellung ist 0 (Werte sind vom Typ REG_DWORD). Dieser Eintrag ist mit SQLTraceMode austauschbar.
TraceODBCAPI | Ein Anzeiger, der festlegt, ob ODBC API-Aufrufe in ODBCAPI.TXT protokolliert werden. Mögliche Werte sind 0 (nein) und 1 (ja). Die Voreinstellung ist 0 (Werte sind vom Typ REG_DWORD).
DisableAsync | Ein Anzeiger, der festlegt, ob die synchrone Abfragebearbeitung durchgesetzt wird. Werte sind 0 (nach Möglichkeit die asynchrone Abfragebearbeitung verwenden) und 1 (synchrone Abfragebearbeitung). Die Voreinstellung ist 1 (Werte sind vom Typ REG_DWORD).
TryJetAuth | Ein Anzeiger, der festlegt, ob vor der Eingabeaufforderung versucht werden soll, sich mit dem Microsoft Access-Benutzernamen und -Kennwort an den Server anzumelden. Mögliche Werte sind 0 (nein) und 1 (ja). Die Voreinstellung ist 1 (Werte sind vom Typ REG_DWORD).
PreparedInsert | Ein Anzeiger, der festlegt, ob eine vorbereitete INSERT-Anweisung, die Daten in alle Spalten einfügt, verwendet wird. Werte sind 0 (benutzerdefinierte INSERT-Anweisung verwenden, die nur Werte ungleich Null einfügt) und 1 (vorbereitete INSERT-Anweisung verwenden). Die Voreinstellung ist 0 (Werte sind vom Typ REG_DWORD). Durch die Verwendung vorbereiteter INSERT-Anweisungen können eventuell Voreinstellungen des Servers durch Nullen überschrieben werden, und Auslöser (Trigger) werden möglicherweise für Spalten ausgeführt, die nicht explizit eingefügt wurden.
PreparedUpdate | Ein Anzeiger, der festlegt, ob eine vorbereitete UPDATE-Anweisung, die Daten in allen Spalten aktualisiert, verwendet wird. Mögliche Werte sind 0 (benutzerdefinierte UPDATE-Anweisung verwenden, die nur geänderte Spalten aktualisiert) und 1 (vorbereitete UPDATE-Anweisung verwenden). Die Voreinstellung ist 0 (Werte sind vom Typ REG_DWORD). Durch die Verwendung von vorbereiteten UPDATE-Anweisungen können Auslöser (Trigger) eventuell für unveränderte Spalten ausgeführt werden.
FastRequery | Ein Anzeiger, der festlegt, ob eine vorbereitete SELECT-Anweisung für parametrisierte Abfragen verwendet wird. Mögliche Werte sind 0 (nein) und 1 (ja). Die Voreinstellung ist 0 (Werte sind vom Typ REG_DWORD).
FatBlastRows |
FatBlastTimeout |
ODBCISAMAttach |

Anmerkung Wenn Sie die Einstellungen der Windows-Registrierung ändern, beenden Sie die aktuelle Sitzung, und starten Sie das Datenbankmodul neu, damit die neuen Einstellungen wirksam werden.

Siehe auch

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet


Übersicht über neue Funktionen

Microsoft® Jet, Version 4.x, verfügt über zahlreiche neue Funktionen, einschließlich zusätzlicher reservierter SQL-Wörter, SQL-Datentypen sowie skalarer ODBC-Funktionen. Es stehen nun mehr Informationen im Vergleich zwischen SQL und ANSI SQL sowie weitere Informationen zu äquivalenten ANSI SQL-Datentypen zur Verfügung. ANSI SQL-Platzhalterzeichen, das Prozentzeichen (%) sowie der Unterstrich (_) sind unter Jet 4.x und Microsoft OLE DB Provider for Jet verfügbar.

Weitere Informationen zu diesen neuen Funktionsmerkmalen finden Sie unter folgenden Themen:

Reservierte SQL-Wörter | Vergleich zwischen Microsoft Jet SQL und ANSI SQL
SQL-Datentypen | Äquivalente ANSI SQL-Datentypen
Skalare ODBC-Funktionen | Verwenden von Platzhalterzeichen in Zeichenfolgenvergleichen

Microsoft Jet 4.x verfügt über neue DDL (Data Definition Language)- und DML (Data Manipulation Language)-Anweisungen, zusätzliche Methoden zum Anpassen der Registrierungseinstellungen von Microsoft Windows® sowie zusätzliche Einstellungen zum Initialisieren der Datenbankmodultreiber.

Weitere Informationen zu diesen neuen Funktionen finden Sie unter folgenden Themen:

Neue Funktionen mit DDL (Data Definition Language) | Neue Funktionen mit Windows-Registrierungseinstellungen
Neue Funktionen mit DML (Data Manipulation Language) |


Neue Funktionen mit DDL (Data Definition Language)

Microsoft® Jet, Version 4.x, verfügt über neue erweiterte Anweisungen für DDL (Data Definition Language).

Weitere Informationen zu diesen neuen Anweisungen finden Sie unter folgenden Themen:

ALTER TABLE-Anweisung | CREATE USER- oder GROUP-Anweisung
CONSTRAINT-Klausel | ADD USER-Anweisung
CREATE PROCEDURE-Anweisung | DROP USER- oder GROUP-Anweisung
CREATE TABLE-Anweisung | ALTER USER- oder DATABASE-Anweisung
CREATE VIEW-Anweisung | GRANT-Anweisung
DROP-Anweisung | REVOKE-Anweisung

Siehe auch
Übersicht über neue Funktionen | Neue Funktionen mit Windows-Registrierungseinstellungen
Neue Funktionen mit DML (Data Manipulation Language) |


Neue Funktionen mit DML (Data Manipulation Language)

Microsoft® Jet, Version 4.x, verfügt über neue erweiterte Anweisungen für DML (Data Manipulation Language).

Weitere Informationen zu diesen neuen Anweisungen finden Sie unter folgenden Themen:

EXECUTE-Anweisung | TRANSACTION-Anweisung
PROCEDURE-Klausel |

Siehe auch
Übersicht über neue Funktionen | Neue Funktionen mit Windows-Registrierungseinstellungen
Neue Funktionen mit DDL (Data Definition Language) |


Neue Funktionen mit Windows-Registrierungseinstellungen

Microsoft® Jet, Version 4.x, bietet nun vier Methoden zum Bearbeiten der Registrierungseinstellungen von Microsoft Windows®. Zusätzlich zur Verwendung von Regedit.exe, um Standardeinstellungen zu überschreiben oder Teile in Ihrer anwendungsspezifischen Registrierungsstruktur zum Verwalten der Einstellungen zu erstellen, können Sie nun auch die SetOption-Methode von DAO oder die Connection-Eigenschaften von Microsoft OLE DB Provider for Jet verwenden.

Darüber hinaus finden Sie weitere Informationen sowie Beispiele zu Initialisierungseinstellungen für das Jet-Datenbankmodul. Diese Einstellungen werden für den Zugriff auf Datenbanken von Microsoft Access verwendet. Außerdem finden Sie Informationen zu Replikationseinstellungen für Microsoft Jet.

Weitere Informationen zu diesen Methoden und Einstellungen finden Sie unter folgenden Themen:

Anpassen von Windows-Registrierungseinstellungen für Microsoft Jet Initialisieren des Microsoft Jet 4.0-Datenbankmodultreibers

Siehe auch
Übersicht über neue Funktionen | Neue Funktionen mit DML (Data Manipulation Language)
Neue Funktionen mit DDL (Data Definition Language) |


Erstellen eines Teils der anwendungsspezifischen Registrierungsstruktur, um Einstellungen zu verwalten

Sie können auch die Einstellungen der Microsoft® Windows®-Registrierung verändern, indem Sie eine Microsoft Jet-Unterstruktur in der Struktur der Registrierung für Ihre Anwendung erstellen, um die Einstellungen für das Microsoft Jet-Datenbankmodul zu verwalten. Dies ist am einfachsten, wenn Sie den vorhandenen Microsoft Jet-Schlüssel exportieren und ihn dann in die Struktur der Anwendung mit den Befehlen zum Importieren und Exportieren in der Regedit.exe einbinden. Sie können dann die Werte in der neuen Registrierungsstruktur ändern. Wenn Sie Werte in der Unterstruktur Engines angegeben haben, lädt Microsoft Jet diese Einstellungen, sobald die Anwendung gestartet wird. Alle Werte, die nicht in die Registrierungsstruktur für Ihre Anwendung eingetragen sind, werden aus Voreinstellungen geladen.

Damit Ihre Anwendung den richtigen Teil des Windows-Registrierungschlüssels lädt, geben Sie den Pfad mit der DAO-Eigenschaft INIPath an. Die INIPath-Eigenschaft muss festgelegt werden, bevor weiterer DAO-Code für Ihre Anwendung ausgeführt werden kann. Die Auswirkung dieser Einstellung ist auf Ihre Anwendung beschränkt; Änderungen werden erst gültig, wenn die Anwendung erneut gestartet wird.

Anmerkung Es ist zwar flexibler, eine Unterstruktur für Microsoft Jet zu erstellen, anstatt die Microsoft Jet-Voreinstellungen zu überschreiben, aber eine Bearbeitung der Registrierungsstruktur ist dennoch erforderlich. Immer wenn die Voreinstellungen verändert werden, muss die Windows-Registrierung bearbeitet werden.

Siehe auch
Verwenden von Regedit.exe zum Überschreiben der Standardeinstellungen | Verwenden der Connection-Eigenschaften in Microsoft OLE DB Provider for Jet
Verwenden der SetOption-Methode von DAO |


Verwenden der Connection-Eigenschaften in Microsoft OLE DB Provider for Jet

Zum Anpassen der Microsoft® Windows®-Registrierungseinstellungen können Sie die Connection-Eigenschaften von Microsoft OLE DB Provider for Jet verwenden. Dies wird realisiert, indem auf eine Eigenschaft im Connection-Objekt verwiesen und der Wert verändert wird. Verfügen Sie beispielsweise über das Connection-Objekt ADOConnection, würde die folgende Anweisung zu demselben Ergebnis führen wie der entsprechende Vorgang über ADO:

ADOConnection.Properties("Jet OLEDB:Max Locks Per File") = 20000

Die Namen der Eigenschaft sind im Vergleich zu den DAO-Konstanten und den Registrierungseinstellungen unterschiedlich. Die Namen der Eigenschaften sind dabei:

Jet OLEDB:Max Locks Per File

Jet OLEDB:Implicit Commit Sync

Jet OLEDB:Flush Transaction Timeout

Jet OLEDB:Lock Delay

Jet OLEDB:Max Buffer Size

Jet OLEDB:User Commit Sync

Jet OLEDB:Lock Retry

Jet OLEDB:Exclusive Async Delay

Jet OLEDB:Shared Async Delay

Jet OLEDB:Page Timeout

Jet OLEDB:Recycle Long-Valued Pages

Siehe auch
Verwenden von Regedit.exe zum Überschreiben der Standardeinstellungen | Verwenden der SetOption-Methode von DAO
Erstellen eines Teils der anwendungsspezifischen Registrierungsstruktur, um Einstellungen zu verwalten |


Verwenden von "Regedit.exe" zum Überschreiben der Standardeinstellungen

Um die Registrierungseinstellungen von Microsoft® Windows® anzupassen, können Sie Regedit.exe verwenden, um die Standardeinstellungen zu überschreiben, die eingerichtet werden, wenn das Microsoft Jet-Datenbankmodul registriert wird. Diese Änderungsmethode ist nicht sehr flexibel, da alle Anwendungen, die keinen anderen Registrierungsort angeben, diese neuen Standardeinstellungen verwenden.

Siehe auch
Erstellen eines Teils der anwendungsspezifischen Registrierungsstruktur, um Einstellungen zu verwalten | Verwenden der Connection-Eigenschaften in Microsoft OLE DB Provider for Jet
Verwenden der SetOption-Methode von DAO |


Verwenden der SetOption-Methode von DAO

DAO 3.6 bietet eine neue Methode zum Verändern der Voreinstellungen. Mit der SetOption-Methode können die Microsoft® Windows®-Registrierungseinstellungen jetzt zur Laufzeit geändert werden. Zum Anpassen der Windows-Registrierungseinstellungen können Sie die SetOption-Methode von DAO verwenden. Mit dieser Möglichkeit erhält Ihre Anwendung die maximale Flexibilität und Steuerung. Dadurch können Sie Anwendungen erstellen, die einfach zu warten sind und ein optimales Leistungsverhalten bieten.

Verwenden Sie hierzu die Syntax dbEngine.SetOption, constant, NewValueSetting. Beispielsweise ermöglicht die Anweisung dbEngine.SetOption dbMaxLocksPerfFile, 20000 Microsoft Jet, 20.000 Sperrungen gleichzeitig zu verfolgen. Die Namen der festgelegten Konstanten sind dabei mit dem Registrierungsnamen identisch, wobei db als Präfix hinzugefügt wird.

Dies ist die empfohlene Methode, um die Registrierungseinstellungen Ihrer Anwendung genau abzustimmen. Sie ist sehr flexibel und bietet Ihnen die größtmögliche Kontrolle über die Veränderungen in der Registrierung. Mit der SetOption-Methode können Sie jetzt neue Einstellungen für folgende Standardeinstellungen festlegen:

  • PageTimeout-Schlüssel
  • SharedAsyncDelay-Schlüssel
  • ExclusiveAsyncDelay-Schlüssel
  • LockRetry-Schlüssel
  • UserCommitSync-Schlüssel
  • ImplicitCommitSync-Schlüssel
  • MaxBufferSize-Schlüssel
  • MaxLocksPerFile-Schlüssel
  • LockDelay-Schlüssel
  • RecycleLVs
  • FlushTransactionTimeout-Schlüssel
Siehe auch
Verwenden von Regedit.exe zum Überschreiben der Standardeinstellungen | Verwenden der Connection-Eigenschaften in Microsoft OLE DB Provider for Jet
Erstellen eines Teils der anwendungsspezifischen Registrierungsstruktur, um Einstellungen zu verwalten |


ALL <Microsoft Jet-SQL, reserviertes Wort>

ALL

Das Schlüsselwort ALL wird verwendet im Zusammenhang mit:

ALL-, DISTINCT-, DISTINCTROW-, TOP-Prädikaten

SQL-Unterabfragen

UNION-Operation


ALTER <Microsoft Jet-SQL, reserviertes Wort>

ALTER

Das Schlüsselwort ALTER wird verwendet im Zusammenhang mit:

ALTER TABLE-Anweisung

ALTER USER- oder DATABASE-Anweisung


ASC/DESC <Microsoft Jet-SQL, reserviertes Wort>

ASC/DESC

Die Schlüsselwörter ASC und DESC werden verwendet im Zusammenhang mit:

CREATE INDEX-Anweisung

ORDER BY-Klausel


AS <Microsoft Jet-SQL, reserviertes Wort>

AS

Das Schlüsselwort AS wird verwendet im Zusammenhang mit:

SELECT-Anweisung

CREATE VIEW-Anweisung

CREATE PROCEDURE-Anweisung


BY <Microsoft Jet-SQL, reserviertes Wort>

BY

Das Schlüsselwort BY wird verwendet im Zusammenhang mit:

GROUP BY-Klausel

ORDER BY-Klausel


CONTAINER <Microsoft Jet-SQL, reserviertes Wort>

CONTAINER

Das Schlüsselwort CONTAINER wird verwendet im Zusammenhang mit:

GRANT-Anweisung

REVOKE-Anweisung


CREATE <Microsoft Jet-SQL, reserviertes Wort>

CREATE

Das Schlüsselwort CREATE wird verwendet im Zusammenhang mit:

CREATE INDEX-Anweisung

CREATE TABLE-Anweisung

CREATE VIEW-Anweisung

CREATE PROCEDURE-Anweisung

CREATE USER- oder GROUP-Anweisung

GRANT-Anweisung

REVOKE-Anweisung


DELETE <Microsoft Jet-SQL, reserviertes Wort>

DELETE

Das Schlüsselwort DELETE wird verwendet im Zusammenhang mit:

DELETE-Anweisung

CREATE PROCEDURE-Anweisung

GRANT-Anweisung

REVOKE-Anweisung


DROP <Microsoft Jet-SQL, reserviertes Wort>

DROP

Das Schlüsselwort DROP wird verwendet im Zusammenhang mit:

ALTER TABLE-Anweisung

DROP-Anweisung

DROP USER- oder GROUP-Anweisung

GRANT-Anweisung

REVOKE-Anweisung


FIRST <Microsoft Jet-SQL, reserviertes Wort>

FIRST

Das Schlüsselwort FIRST wird verwendet im Zusammenhang mit:

First-, Last-Funktionen

First-, Last-Funktionen (Beispiel)


FROM <Microsoft Jet-SQL, reserviertes Wort>

FROM

Das Schlüsselwort FROM wird verwendet im Zusammenhang mit:

SELECT-Anweisung

DROP USER- oder GROUP-Anweisung

REVOKE-Anweisung


INDEX <Microsoft Jet-SQL, reserviertes Wort>

INDEX

Das Schlüsselwort INDEX wird verwendet im Zusammenhang mit:

CREATE INDEX-Anweisung

DROP-Anweisung

GRANT-Anweisung

REVOKE-Anweisung


IN <Microsoft Jet-SQL, reserviertes Wort>

IN

Das Schlüsselwort IN wird verwendet im Zusammenhang mit:

In-Operator

IN-Klausel

SQL-Unterabfragen

TRANSFORM-Anweisung


INSERT <Microsoft Jet-SQL, reserviertes Wort>

INSERT

Das Schlüsselwort INSERT wird verwendet im Zusammenhang mit:

INSERT INTO-Anweisung

CREATE PROCEDURE-Anweisung

GRANT-Anweisung

REVOKE-Anweisung


INTO <Microsoft Jet-SQL, reserviertes Wort>

INTO

Das Schlüsselwort INTO wird verwendet im Zusammenhang mit:

INSERT INTO-Anweisung

SELECT INTO-Anweisung


JOIN <Microsoft Jet-SQL, reserviertes Wort>

JOIN

Das Schlüsselwort JOIN wird verwendet im Zusammenhang mit:

INNER JOIN-Operation

LEFT JOIN-, RIGHT JOIN-Operation


LAST <Microsoft Jet-SQL, reserviertes Wort>

LAST

Das Schlüsselwort LAST wird verwendet im Zusammenhang mit:

First-, Last-Funktionen

First-, Last-Funktionen (Beispiel)


ON <Microsoft Jet-SQL, reserviertes Wort>

ON

Das Schlüsselwort ON wird verwendet im Zusammenhang mit:

INNER JOIN-Operation

LEFT JOIN-, RIGHT JOIN-Operation

CONSTRAINT-Klausel

GRANT-Anweisung

REVOKE-Anweisung


SCHEMA <Microsoft Jet-SQL, reserviertes Wort>

SCHEMA

Das Schlüsselwort SCHEMA wird verwendet im Zusammenhang mit:

GRANT-Anweisung

REVOKE-Anweisung


SELECT <Microsoft Jet-SQL, reserviertes Wort>

SELECT

Das Schlüsselwort SELECT wird verwendet im Zusammenhang mit:

SELECT-Anweisung

SELECT ... INTO-Anweisung

CREATE VIEW-Anweisung

CREATE PROCEDURE-Anweisung

GRANT-Anweisung

REVOKE-Anweisung


SELECTSCHEMA <Microsoft Jet-SQL, reserviertes Wort>

SELECTSCHEMA

Das Schlüsselwort SELECTSCHEMA wird verwendet im Zusammenhang mit:

GRANT-Anweisung

REVOKE-Anweisung


SELECTSECURITY <Microsoft Jet-SQL, reserviertes Wort>

SELECTSECURITY

Das Schlüsselwort SELECTSECURITY wird verwendet im Zusammenhang mit:

GRANT-Anweisung

REVOKE-Anweisung


TABLE <Microsoft Jet-SQL, reserviertes Wort>

TABLE

Das Schlüsselwort TABLE wird verwendet im Zusammenhang mit:

ALTER TABLE-Anweisung

CREATE INDEX-Anweisung

CREATE TABLE-Anweisung

DROP-Anweisung

UNION-Operation

GRANT-Anweisung

REVOKE-Anweisung


TO <Microsoft Jet-SQL, reserviertes Wort>

TO

Das Schlüsselwort TO wird verwendet im Zusammenhang mit:

ADD USER-Anweisung

GRANT-Anweisung


UPDATE <Microsoft Jet-SQL, reserviertes Wort>

UPDATE

Das Schlüsselwort UPDATE wird verwendet im Zusammenhang mit:

UPDATE-Anweisung

CREATE PROCEDURE-Anweisung

GRANT-Anweisung

REVOKE-Anweisung


UPDATEIDENTITY <Microsoft Jet-SQL, reserviertes Wort>

UPDATEIDENTITY

Das Schlüsselwort UPDATEIDENTITY wird verwendet im Zusammenhang mit:

GRANT-Anweisung

REVOKE-Anweisung


UPDATEOWNER <Microsoft Jet-SQL, reserviertes Wort>

UPDATEOWNER

Das Schlüsselwort UPDATEOWNER wird verwendet im Zusammenhang mit:

GRANT-Anweisung

REVOKE-Anweisung


UPDATESECURITY <Microsoft Jet-SQL, reserviertes Wort>

UPDATESECURITY

Das Schlüsselwort UPDATESECURITY wird verwendet im Zusammenhang mit:

GRANT-Anweisung

REVOKE-Anweisung


USER <Microsoft Jet-SQL, reserviertes Wort>

USER

Das Schlüsselwort USER wird verwendet im Zusammenhang mit:

CREATE USER- oder GROUP-Anweisung

ADD USER-Anweisung

DROP USER- oder GROUP-Anweisung

ALTER USER- oder DATABASE-Anweisung


VIEW <Microsoft Jet-SQL, reserviertes Wort>

VIEW

Das Schlüsselwort VIEW wird verwendet im Zusammenhang mit:

CREATE VIEW-Anweisung

DROP-Anweisung


WITH <Microsoft Jet-SQL, reserviertes Wort>

WITH

Das Schlüsselwort WITH wird verwendet im Zusammenhang mit:

CREATE INDEX-Anweisung

WITH OWNERACCESS OPTION-Deklaration


ALL-, DISTINCT-, DISTINCTROW-, TOP-Prädikate (Microsoft Jet-SQL)

ALL-, DISTINCT-, DISTINCTROW-, TOP-Prädikate

Gibt Datensätze an, die mit SQL-Abfragen ausgewählt wurden.

Syntax

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM Tabelle

Eine SELECT-Anweisung, die diese Prädikate enthält, besteht aus folgenden Teilen:

Teil | Beschreibung
ALL Wird angenommen, wenn keines der Prädikate angegeben wird. Das Microsoft Jet-Datenbankmodul wählt alle Datensätze aus, die die Bedingungen in der SQL-Anweisung erfüllen. Die beiden folgenden Beispiele sind äquivalent und geben alle Datensätze der Tabelle "Personal" zurück:

SELECT ALL *
FROM Personal
ORDER BY [Personal-Nr];

SELECT *
FROM Personal
ORDER BY [Personal-Nr];
DISTINCT Wählt Datensätze nicht aus, die in den ausgewählten Feldern mehrfach vorkommende Daten enthalten. Die Werte für alle in der SELECT-Anweisung aufgeführten Felder müssen eindeutig sein, damit sie in das Ergebnis der Abfrage aufgenommen werden. Beispielsweise können mehrere in der Tabelle "Personal" aufgeführte Angestellte denselben Nachnamen haben. Wenn zwei Datensätze den Wert "Schmidt" im Feld "Nachname" enthalten, gibt die folgende SQL-Anweisung nur einen der Datensätze zurück, die "Schmidt" enthalten:

SELECT DISTINCT
Nachname
FROM Personal;

Wenn Sie DISTINCT nicht angeben, gibt diese Abfrage beide Datensätze mit "Schmidt" zurück.

Wenn die SELECT-Klausel mehrere Felder enthält, muss die Kombination der Werte aus allen Feldern eindeutig sein, damit ein bestimmter Datensatz in das Ergebnis aufgenommen wird.

Die Ausgabe einer Abfrage, die DISTINCT verwendet, kann nicht aktualisiert werden, und von anderen Benutzern nachträglich vorgenommene Änderungen werden in der Ausgabe nicht berücksichtigt.
DISTINCTROW Wählt Daten aus mehrfach auftretenden Datensätzen (und nicht nur aus mehrfach auftretenden Feldern) nur einmal aus. Beispielsweise können Sie eine Abfrage erstellen, in der die Tabellen "Kunden" und "Bestellungen" über das Feld "Kunden-Nr" verknüpft werden. Die Tabelle "Kunden" enthält keine doppelten Kunden-Nr-Felder, aber die Tabelle "Bestellungen" enthält diese, da jeder Kunde mehrere Bestellungen machen kann. Die folgende SQL-Anweisung zeigt, wie Sie mit DISTINCTROW eine Liste der Firmen erstellen können, die mindestens eine Bestellung in Auftrag gegeben haben, ohne Details zu den Bestellungen in die Liste aufzunehmen:

SELECT DISTINCTROW [Firma]
FROM Kunden INNER JOIN Bestellungen
ON Kunden.[Kunden-Nr] = Bestellungen.[Kunden-Nr]
ORDER BY [Firma];

Wenn Sie DISTINCTROW nicht angeben, erstellt diese Abfrage mehrere Zeilen für alle Firmen mit mehreren Bestellungen.

DISTINCTROW ist nur dann wirksam, wenn Sie Felder nicht aus allen, sondern nur aus einigen der in der Abfrage verwendeten Tabellen auswählen. DISTINCTROW wird ignoriert, wenn die Abfrage nur eine Tabelle umfasst oder wenn Sie Felder von allen Tabellen ausgeben.
TOP n [PERCENT] Gibt eine bestimmte Anzahl von Datensätzen zurück, die im oberen oder unteren Teil eines durch eine ORDER BY-Klausel angegebenen Bereichs liegen. Angenommen, Sie wollten die Namen der 25 besten Studenten aus dem Jahrgang 1994 ermitteln:

SELECT TOP 25
Vorname, Nachname
FROM Studenten
WHERE Abschlussjahr = 1994
ORDER BY Abschlussnote DESC;

Wenn Sie keine ORDER BY-Klausel angeben, gibt die Abfrage 25 nicht näher bestimmte Datensätze aus der Tabelle "Studenten" zurück, die die in der WHERE-Klausel angegebene Bedingung erfüllen.

Das TOP-Prädikat trifft keine Auswahl bei gleichen Werten. Wenn im vorhergehenden Beispiel der Notendurchschnitt des 25. und des 26. Studenten übereinstimmen, gibt die Abfrage 26 Datensätze zurück.

Sie können auch mit dem reservierten Wort PERCENT einen bestimmten Prozentsatz der Datensätze zurückgeben, die im oberen oder unteren Teil eines durch eine ORDER BY-Klausel angegebenen Bereichs liegen. Nehmen Sie an, Sie wollten statt der 25 besten Studenten die besten 10 Prozent des Jahrgangs ermitteln:

SELECT TOP 10 PERCENT
Vorname, Nachname
FROM Studenten
WHERE Abschlussjahr = 1994
ORDER BY Abschlussnote ASC;

Das ASC-Prädikat gibt die Rückgabe der kleinsten Werte an. Der Wert im Anschluss an TOP muss ohne Vorzeichen sein und den Datentyp Integer haben.

TOP hat keinen Einfluss darauf, ob die Abfrage aktualisierbar ist.
Tabelle | Der Name der Tabelle, aus der Datensätze abgerufen werden.

Siehe auch
FROM-Klausel (Microsoft Jet SQL) SELECT-Anweisung (Microsoft Jet SQL)

Beispiel

ALL-, DISTINCT-, DISTINCTROW-, TOP-Prädikate (Beispiel)


ALL-, DISTINCT-, DISTINCTROW-, TOP-Prädikate (Beispiel, DAO)

ALL-, DISTINCT-, DISTINCTROW-, TOP-Prädikate (Beispiel)

Dieses Beispiel erstellt eine Abfrage, die die Tabellen "Kunden" und "Bestellungen" mit dem Feld [Kunden-Code] verknüpft. Die Tabelle "Kunden" enthält keine doppelten Kunden-Nr-Felder, aber die Tabelle "Bestellungen" enthält diese, da jeder Kunde mehrere Bestellungen machen kann. Mit dem DISTINCTROW-Prädikat wird eine Liste der Firmen ausgegeben, die mindestens eine Bestellung gemacht haben, aber es werden keine Bestelldetails angegeben.

Sub AllDistinctX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Verknüpfen der Tabellen "Kunden" und "Bestellungen" über

    ' das Feld "Kunden-Code". Auswählen einer Liste von Firmen,

    ' die mindestens eine Bestellung aufgegeben haben.

    Set rst = dbs.OpenRecordset("SELECT DISTINCTROW " _

        & "Firma FROM Kunden " _

        & "INNER JOIN Bestellungen " _

        & "ON Kunden.[Kunden-Code] = " _

        & "Bestellungen.[Kunden-Code] " _

        & "ORDER BY Firma;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 25

    dbs.Close

End Sub


ALTER TABLE-Anweisung (Beispiel, DAO)

ALTER TABLE-Anweisung (Beispiel)

Dieses Beispiel fügt ein Feld "Gehalt" vom Datentyp Money der Tabelle "Personal" hinzu.

Sub AlterTableX1()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Das Feld Gehalt zur Tabelle Personal hinzufügen

    ' und den Datentyp Money zuweisen.

    dbs.Execute "ALTER TABLE Personal " _

        & "ADD COLUMN Gehalt MONEY;"

    dbs.Close

End Sub

In diesem Beispiel wird der Datentyp des Feldes "Gehalt" von Money in Char geändert.

Sub AlterTableX2()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Das Feld Gehalt zur Tabelle Personal hinzufügen

    ' und den Datentyp Money zuweisen.

    dbs.Execute "ALTER TABLE Personal " _

        & "ALTER COLUMN Gehalt CHAR(20);"

    dbs.Close

End Sub

Dieses Beispiel entfernt das Feld "Gehalt" aus der Tabelle "Personal".

Sub AlterTableX3()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Das Feld Gehalt aus der Tabelle Personal löschen.

    dbs.Execute "ALTER TABLE Personal " _

        & "DROP COLUMN Gehalt;"

    dbs.Close

End Sub

Dieses Beispiel fügt der Tabelle "Bestellungen" einen Fremdschlüssel hinzu. Der Fremdschlüssel basiert auf dem Feld "Personal-Nr" und bezieht sich auf das Feld "Personal-Nr" in der Tabelle "Personal". In diesem Beispiel brauchen Sie das Feld "Personal-Nr" nicht am Ende der Tabelle "Personal" der REFERENCES-Klausel aufzuführen, da es sich bei diesem Feld um den Primärschlüssel dieser Tabelle handelt.

Sub AlterTableX4()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Der Tabelle einen Fremdschlüssel Bestellungen hinzufügen.

    dbs.Execute "ALTER TABLE Bestellungen " _

        & "ADD CONSTRAINT OrdersRelationship " _

        & "FOREIGN KEY ([Personal-Nr]) " _

        & "REFERENCES Personal ([Personal-Nr]);"

    dbs.Close

End Sub

Dieses Beispiel entfernt den Fremdschlüssel aus der Tabelle "Bestellungen".

Sub AlterTableX5()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Entfernen des Fremdschlüssels OrdersRelationship aus

    ' der .

    dbs.Execute "ALTER TABLE Bestellungen " _

        & "DROP CONSTRAINT OrdersRelationship;"

    dbs.Close

End Sub


Avg-Funktion (Microsoft Jet-SQL)

Avg-Funktion

Berechnet den arithmetischen Mittelwert einer Menge von Werten in einem bestimmten Feld einer Abfrage.

Syntax

Avg(Ausdr)

Der Platzhalter Ausdr stellt einen Zeichenfolgenausdruck dar, der das Feld mit den numerischen Daten kennzeichnet, deren Durchschnitt gebildet werden soll, oder einen Ausdruck, der mit den Daten in diesem Feld eine Berechnung durchführt. Die Operanden in Ausdr können den Namen eines Tabellenfeldes, einer Konstante oder einer Funktion (d. h. eine integrierte oder benutzerdefinierte Funktion, aber keine der anderen SQL-Aggregatfunktionen) enthalten.

Bemerkungen

Der mit Avg berechnete Mittelwert ist das arithmetische Mittel (die Summe der Werte dividiert durch die Anzahl der Werte). Sie können Avg z. B. zum Berechnen der durchschnittlichen Frachtkosten verwenden.

Die Avg-Funktion ignoriert bei der Berechnung Felder mit dem Wert Null.

Sie können Avg in einem Abfrageausdruck und in der SQL-Eigenschaft eines QueryDef-Objekts oder beim Erstellen eines Recordset-Objekts auf Basis einer SQL-Abfrage verwenden.

Siehe auch
Berechnen von Feldern in SQL-Funktionen SQL Aggregatfunktionen (SQL)

Beispiel

Avg-Funktion (Beispiel)


Avg-Funktion (Beispiel, DAO)

Avg-Funktion (Beispiel)

Dieses Beispiel verwendet die Tabelle "Bestellungen" zum Berechnen der durchschnittlichen Frachtkosten für Bestellungen mit Frachtkosten über 100 DM.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub AvgX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Berechnen der durchschnittlichen Frachtkosten für Bestellungen

    ' mit Frachtkosten über 100 DM.

    Set rst = dbs.OpenRecordset _("SELECT Avg(Frachtkosten)" _

        & " AS [Durchschnittliche Frachtkosten]" _

        & " FROM Bestellungen WHERE Frachtkosten > 100;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 25

    dbs.Close

End Sub


Between...And-Operator (Microsoft Jet-SQL)

Between...And-Operator

Bestimmt, ob der Wert eines Ausdrucks innerhalb eines bestimmten Bereichs von Werten liegt. Sie können diesen Operator in SQL-Anweisungen verwenden.

Syntax

Ausdr [Not] Between Wert1 And Wert2

Die Syntax des Between...And-Operators besteht aus folgenden Teilen:

Teil | Beschreibung
Ausdr | Ausdruck, der das Feld kennzeichnet, das die auszuwertenden Daten enthält.
Wert1, Wert2 | Ausdrücke, die die Ober- und Untergrenze für die Auswertung von Ausdr angeben.

Bemerkungen

Wenn der Wert von Ausdr im Bereich von Wert1 bis Wert2 (einschließlich) liegt, liefert der Between...And-Operator den Wert True, andernfalls liefert er False. Sie können den logischen Operator Not angeben, um die umgekehrte Bedingung auszuwerten (d. h. ob Ausdr außerhalb des Bereichs liegt, der durch Wert1 und Wert2 definiert wird).

Sie können mit Between...And feststellen, ob der Wert eines Feldes innerhalb eines bestimmten numerischen Bereichs liegt. Im folgenden Beispiel wird überprüft, ob eine Bestellung an einen Ort ausgeliefert wurde, dessen Postleitzahl in einem bestimmten Bereich liegt. Wenn die Postleitzahl im Bereich von 44000 bis 44999 liegt, liefert die IIf-Funktion den Wert "Dortmund". Andernfalls wird der Wert "Außerhalb Dortmund" zurückgegeben.

SELECT IIf(PLZ Between 44137 And 44147, "Dortmund", "Außerhalb Dortmund")

FROM Verleger

Wenn Ausdr, Wert1 oder Wert2 den Wert Null hat, liefert Between...And den Wert Null.

Da Platzhalter, z. B. das Sternchen (*), als Literale interpretiert werden, können Sie sie nicht zusammen mit dem Between...And-Operator verwenden. Sie können z. B. nicht 40* und 49* verwenden, um alle Postleitzahlen im Bereich von 40000 bis 48999 zu finden. Sie können der Abfrage einen Ausdruck hinzufügen, der die ersten drei (links stehenden) Zeichen des Textfeldes ermittelt, und Between...And für diese Zeichen verwenden. Sie können auch den kleinsten und den größten Wert explizit angeben (in diesem Fall 40000 bis 48999 – 9999). (Sie müssen – 0000 in den niedrigen Werten weglassen, denn sonst wird 48000 möglicherweise ausgeschlossen, falls einige Postleitzahlen erweitert sind und andere nicht.)

Siehe auch
IN-Klausel (Microsoft Jet SQL) | SQL-Ausdrücke
WHERE-Klausel (Microsoft Jet SQL) |

Beispiel

SQL-Unterabfragen (Beispiel)


Berechnen von Feldern in SQL-Funktionen

Sie können den Zeichenfolgenausdruck in einer SQL-Aggregatfunktion verwenden, um eine Berechnung mit Werten in einem Feld durchzuführen. Sie könnten z. B. einen Prozentsatz berechnen (etwa einen Aufschlag oder die Mehrwertsteuer), indem Sie den Wert eines Feldes mit einem Dezimalbruch multiplizieren.

Die folgende Tabelle enthält Beispiele für Berechnungen mit Feldern der Tabellen "Bestellungen" und "Bestelldetails" in der Datenbank NORDWIND.MDB.

Berechnung | Beispiel
Addieren einer Zahl zu einem Feld | Fracht + 5
Subtrahieren einer Zahl von einem Feld | Fracht - 5
Multiplizieren eines Feldes mit einer Zahl | Einzelpreis * 2
Dividieren eines Feldes durch eine Zahl | Fracht / 2
Addieren eines Feldes zu einem anderen | Lagerbestand + BestellteEinheiten
Subtrahieren eines Feldes von einem anderen | Mindestbestand - Lagerbestand

Im folgenden Beispiel wird der durchschnittliche Rabatt für alle Bestellungen in der Datenbank NORDWIND.MDB berechnet. Die Werte der Felder "Einzelpreis" und "Rabatt" werden multipliziert, um den Rabatt jeder einzelnen Bestellung zu bestimmen, und anschließend wird der Durchschnitt berechnet. Sie können den folgenden Ausdruck in einer SQL-Anweisung in Visual Basic-Code verwenden:

SELECT Avg(Einzelpreis * Rabatt) AS [Durchschnittsrabatt] FROM [Bestelldetails];

Siehe auch
SQL-Aggregatfunktionen (SQL) SQL-Ausdrücke


Count-Funktion (Microsoft Jet-SQL)

Count-Funktion

Berechnet die Anzahl der von einer Abfrage zurückgegebenen Datensätze.

Syntax

Count(Ausdr)

Der Platzhalter Ausdr stellt einen Zeichenfolgenausdruck dar, der das Feld mit den zu zählenden Daten bezeichnet, oder einen Ausdruck, der Berechnungen unter Verwendung der Daten aus diesem Feld durchführt. Die Operanden in Ausdr können den Namen eines Tabellenfeldes oder einer Funktion (d. h. integrierte oder benutzerdefinierte Funktionen, aber keine der anderen SQL-Aggregatfunktionen) enthalten. Sie können beliebige Daten (auch Text) zählen.

Bemerkungen

Mit Count können Sie die Anzahl der Datensätze in einer zugrunde liegenden Abfrage zählen. Sie können mit Count z. B. die Anzahl der Bestellungen für ein bestimmtes Bestimmungsland zählen.

Auch wenn Ausdr eine Berechnung auf einem Feld durchführen kann, ermittelt Count einfach die Anzahl der Datensätze. Die in den Datensätzen gespeicherten Werte sind dabei unerheblich.

Die Count-Funktion zählt keine Datensätze, die Null-Felder haben, es sei denn, bei Ausdr handelt es sich um das Platzhalterzeichen Sternchen (*). Wenn Sie das Sternchen (*) angeben, zählt Count alle Datensätze, einschließlich der Datensätze mit Null-Feldern. Count(*) ist deutlich schneller als Count([Spaltenname]). Setzen Sie das Sternchen nicht in Anführungszeichen (' '). Im folgenden Beispiel wird die Anzahl der Datensätze in der Tabelle "Bestellungen" berechnet:

SELECT Count(*)

AS AlleBestellungen FROM Bestellungen;

Wenn Ausdr mehrere Felder kennzeichnet, zählt die Count-Funktion einen Datensatz nur, wenn zumindest ein Feld dieses Datensatzes ungleich Null ist. Wenn alle angegebenen Felder den Wert Null haben, wird der Datensatz nicht mitgezählt. Trennen Sie die Feldnamen durch kaufmännische Und-Zeichen (&) voneinander. Im folgenden Beispiel wird gezeigt, wie Sie festlegen, daß nur die Datensätze gezählt werden, die entweder im Feld "Versanddatum" oder im Feld "Fracht" einen Wert ungleich Null haben:

SELECT

Count('Versanddatum & Fracht')

AS [Not Null] FROM Bestellungen;

Sie können Count in einem Abfrageausdruck verwenden. Sie können diesen Ausdruck auch in der SQL-Eigenschaft eines QueryDef-Objekts oder beim Erstellen eines Recordset-Objekts auf Basis einer SQL-Abfrage verwenden.

Siehe auch
SELECT-Anweisung (Microsoft Jet SQL) | Sum-Funktion (Microsoft Jet SQL)
SQL-Aggregatfunktionen (SQL) |

Beispiel

Count-Funktion (Beispiel)


Count-Funktion (Beispiel, DAO)

Count-Funktion (Beispiel)

Dieses Beispiel verwendet die Tabelle "Bestellungen" zum Berechnen der Anzahl der Bestellungen mit dem Ziel Großbritannien.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub CountX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Berechnen der Anzahl der Bestellungen,

    ' die nach Großbritannien geliefert wurden.

    Set rst = dbs.OpenRecordset("SELECT" _

        & " Count(Bestimmungsland)" _

        & " AS [GB-Kunden] FROM Bestellungen" _

        & " WHERE Bestimmungsland = 'Großbritannien';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 25

    dbs.Close

End Sub


CREATE INDEX-Anweisung (Beispiel, DAO)

CREATE INDEX-Anweisung (Beispiel)

Dieses Beispiel erstellt einen Index, der aus den Feldern "Telefon privat" und "Durchwahl Büro" besteht. Diese Felder gehören zur Tabelle "Personal".

Sub CreateIndexX1()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' In der Tabelle Personal den Index NeuerIndex erstellen.

    dbs.Execute "CREATE INDEX NeuerIndex ON Personal " _

        & "([Telefon privat], ([Durchwahl Büro]);"

    dbs.Close

End Sub

Dieses Beispiel erstellt mit dem Feld [Kunden-Code] in der Tabelle "Kunden" einen Index. Im Feld "Kunden-Code" können zwei Datensätze nicht dieselben Daten enthalten, und Null-Werte sind nicht zulässig.

Sub CreateIndexX2()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Erstellen eines Indexes "KundCode" für

    ' das Feld "Kunden-Code".

    dbs.Execute "CREATE UNIQUE INDEX KundCode " _

        & "ON Kunden ([Kunden-Code]) " _

        & "WITH DISALLOW NULL;"

    dbs.Close

End Sub


CREATE TABLE-Anweisung, CONSTRAINT-Klausel (Beispiel, DAO)

CREATE TABLE-Anweisung, CONSTRAINT-Klausel (Beispiel)

Dieses Beispiel erstellt eine neue Tabelle, "DieseTabelle", mit zwei Textfeldern.

Sub CreateTableX1()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

' Eine Tabelle mit zwei Textfeldern erstellen.

    dbs.Execute "CREATE TABLE DieseTabelle" _

        & "(Vorname CHAR, Nachname CHAR);"

    dbs.Close

End Sub

Dieses Beispiel erstellt eine neue Tabelle, "Tabelle1", die zwei Textfelder, ein Datum-/Zeitfeld und einen eindeutigen Index, der aus den drei Feldern besteht, enthält.

Sub CreateTableX2()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Erstellen einer Tabelle mit drei Feldern und einem

    ' Index, der alle drei Felder umfasst.

    dbs.Execute "CREATE TABLE Tabelle1" _

        & "(Vorname CHAR, Nachname CHAR, " _

        & "Geburtsdatum DATETIME, " _

        & "CONSTRAINT MyTableConstraint UNIQUE " _

        & "(Vorname, Nachname, Geburtsdatum));"

    dbs.Close

End Sub

Dieses Beispiel erstellt eine neue Tabelle mit zwei Textfeldern und einem ganzzahligen Feld. Das Feld "Ausweisnummer" ist der Primärschlüssel.

Sub CreateTableX3()

     Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Erstellen einer Tabelle mit drei Feldern und einem Primär-

    ' schlüssel.

    dbs.Execute "CREATE TABLE NeueTabelle " _

        & "(Vorname CHAR, Nachname CHAR, " _

        & "Ausweisnummer INTEGER " & _& CONSTRAINT Feldeinschränkung" _

        & "PRIMARY KEY);"

    dbs.Close

End Sub


DELETE-Anweisung (Beispiel, DAO)

DELETE-Anweisung (Beispiel)

Dieses Beispiel löscht alle Datensätze der Angestellten, die Trainees sind. Wenn die FROM-Klausel nur eine Tabelle einschließt, muss der Tabellenname nicht in der DELETE-Anweisung aufgeführt werden.

Sub DeleteX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Datensätze der Angestellten löschen, deren

    ' Position Trainee ist.

    dbs.Execute "DELETE * FROM " _

        & "Personal WHERE Position = 'Trainee';"

    dbs.Close

End Sub


DROP-Anweisung (Beispiel, DAO)

DROP-Anweisung (Beispiel)

Das folgende Beispiel geht von einem hypothetischen Index NeuerIndex aus. Dieser Index befindet sich in der Tabelle "Personal" der Nordwind-Datenbank.

Dieses Beispiel löscht den Index Index1 aus der Tabelle "Personal".

Sub DropX1()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' NeuerIndex aus der Tabelle Personal löschen.

    dbs.Execute "DROP INDEX NeuerIndex ON Personal;"

    dbs.Close

End Sub

Dieses Beispiel löscht die Tabelle "Personal" aus der Datenbank.

Sub DropX2()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Die Tabelle Personal löschen.

    dbs.Execute "DROP TABLE Personal;"

    dbs.Close

End Sub


First-, Last-Funktionen (Microsoft Jet-SQL)

First-, Last-Funktionen

Geben den Wert eines Feldes aus dem ersten oder letzten Datensatz der von einer Abfrage zurückgegebenen Ergebnismenge zurück.

Syntax

First(Ausdr)

Last(Ausdr)

Der Platzhalter Ausdr stellt einen Zeichenfolgenausdruck dar, der das Feld mit den zu verwendenden Daten kennzeichnet, oder einen Ausdruck, der Berechnungen mit den Daten in diesem Feld durchführt. Die Operanden in Ausdr können den Namen eines Tabellenfeldes, einer Konstante oder einer Funktion (d. h. eine integrierte oder benutzerdefinierte Funktion, aber keine der anderen SQL-Aggregatfunktionen) enthalten.

Bemerkungen

Die Funktionen First und Last sind analog zu den Methoden MoveFirst und MoveLast eines DAO-Recordset-Objekts. Es wird einfach der Wert eines angegebenen Feldes im ersten oder letzten Datensatz zurückgegeben, und zwar aus der Ergebnismenge einer Abfrage. Da Datensätze gewöhnlich in keiner bestimmten Reihenfolge zurückgegeben werden (solange die Abfrage keine ORDER BY-Klausel enthält), sind die Datensätze, die durch diese Funktionen zurückgegeben werden, nicht näher bestimmt.

Siehe auch
Berechnen von Feldern in SQL-Funktionen SQL-Aggregatfunktionen (SQL)

Beispiel

First-, Last-Funktionen (Beispiel)


First-, Last-Funktionen (Beispiel, DAO)

First-, Last-Funktionen (Beispiel)

Dieses Beispiel verwendet die Tabelle "Personal", um die Werte aus dem Feld "Nachname" für den ersten und letzten Datensatz zurückzugeben, die von der Tabelle zurückgegeben werden.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub FirstLastX1()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Zurückgeben der Werte aus dem Feld Nachname des

    ' ersten und letzten von der Tabelle zurückgegebenen Datensatzes.

    Set rst = dbs.OpenRecordset("SELECT " _

        & "First(Nachname) AS Ersten, " _

        & "Last(Nachname) As Letzten FROM Personal;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 12

    dbs.Close

End Sub

Das folgende Beispiel vergleicht die Funktionen First und Last mit den Funktionen Min und Max, um das früheste bzw. späteste Geburtsdatum der Angestellten zu finden.

Sub FirstLastX2()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Frühestes und spätestes Geburtsdatum der

    ' Angestellten suchen.

    Set rst = dbs.OpenRecordset("SELECT " _

        & "First(Geburtsdatum) as FirstBD, " _

        & "Last(Geburtsdatum ) as LastBD FROM Personal;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 12

    Debug.Print

    ' Frühestes und spätestes Geburtsdatum der

    ' Angestellten suchen.

    Set rst = dbs.OpenRecordset("SELECT " _
        & "Min(Geburtsdatum) as MinBD," _

        & "Max(Geburtsdatum) as MaxBD FROM Personal;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 12

    dbs.Close

End Sub


FROM-Klausel (Microsoft Jet-SQL)

FROM-Klausel

Gibt die Tabellen oder Abfragen an, in denen die in der SELECT-Anweisung aufgeführten Felder enthalten sind.

Syntax

SELECT Feldliste
FROM Tabellenausdruck [IN ExterneDatenbank]

Eine SELECT-Anweisung mit einer FROM-Klausel besteht aus folgenden Teilen:

Teil | Beschreibung
Feldliste | Die Namen von Feldern, die zusammen mit Alias-Bezeichnungen für Feldnamen, SQL-Aggregatfunktionen, Auswahlprädikaten (ALL, DISTINCT, DISTINCTROW oder TOP) oder anderen Optionen für die SELECT-Anweisung abgerufen werden sollen.
Tabellenausdruck | Ein Ausdruck, der eine oder mehrere Tabellen kennzeichnet, aus denen Daten abgerufen werden. Der Ausdruck kann ein einzelner Tabellenname sein, ein Name einer gespeicherten Abfrage oder ein zusammengesetzter Name, der sich aus einer Verknüpfung (INNER JOIN LEFT JOIN, oder RIGHT JOIN) ergibt.
ExterneDatenbank | Der vollständige Pfad einer externen Datenbank, die alle Tabellen in Tabellenausdruck enthält.

Bemerkungen

Die Angabe von FROM ist erforderlich und muss auf alle SELECT-Anweisungen folgen.

Die Reihenfolge der Tabellennamen in Tabellenausdruck ist ohne Bedeutung.

Sie können Daten aus einer externen Datenbank schneller und komfortabler abrufen, wenn Sie statt einer IN-Klausel eine verknüpfte Tabelle verwenden.

Das folgende Beispiel zeigt, wie Sie Daten aus der Tabelle "Personal" abrufen können:

SELECT Nachname, Vorname

FROM Personal;

Siehe auch
Prädikate ALL DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
IN-Klausel (Microsoft Jet SQL) | SQL Aggregatfunktionen (SQL)
Operationen LEFT JOIN, RIGHT JOIN (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)
INNER JOIN-Operation (Microsoft Jet SQL) |

Beispiel

SELECT-Anweisung, FROM-Klausel (Beispiel)


GROUP BY-Klausel (Microsoft Jet-SQL)

GROUP BY-Klausel

Fasst Datensätze, die in der angegebenen Feldliste dieselben Werte enthalten, zu einem einzelnen Datensatz zusammen. Für jeden Datensatz wird ein Ergebniswert berechnet, wenn Sie eine SQL-Aggregatfunktion, wie Sum oder Count in der SELECT-Anweisung angeben.

Syntax

SELECT Feldliste
FROM Tabelle
WHERE Kriterien
[GROUP BY Gruppenfeldliste]

Eine SELECT-Anweisung, die eine GROUP BY-Klausel enthält, besteht aus folgenden Teilen:

Teil | Beschreibung
Feldliste | Die Namen von Feldern, die zusammen mit Alias-Bezeichnungen für Feldnamen, SQL-Aggregatfunktionen, Auswahlprädikaten (ALL, DISTINCT, DISTINCTROW oder TOP) oder anderen Optionen für die SELECT-Anweisung abgerufen werden sollen.
Tabelle | Der Name der Tabelle, aus der Datensätze abgerufen werden. Weitere Informationen hierzu finden Sie unter FROM-Klausel.
Kriterien | Auswahlkriterien. Wenn die Anweisung eine WHERE-Klausel enthält, gruppiert das Microsoft Jet-Datenbankmodul Werte, nachdem die WHERE-Bedingungen für die Datensätze überprüft wurden.
Gruppenfeldliste | Die Namen von bis zu 10 Feldern zum Gruppieren von Datensätzen. Die Reihenfolge der Feldnamen in Gruppenfeldliste bestimmt die Gruppierungsebenen (von höchster zu niedrigster Ebene).

Bemerkungen

GROUP BY ist optional.

Ergebniswerte werden nicht angegeben, wenn die SELECT-Anweisung keine SQL-Aggregatfunktion enthält.

Null-Werte in GROUP BY-Feldern werden berücksichtigt und gruppiert. Null-Werte werden jedoch in keiner SQL-Aggregatfunktion ausgewertet.

Verwenden Sie die WHERE-Klausel, um Zeilen auszuschließen, die nicht gruppiert werden sollen, und verwenden Sie die HAVING-Klausel, um Datensätze nach dem Gruppieren zu filtern.

Wenn ein Feld in einer GROUP BY-Feldliste keine Memo- oder OLE-Objekt-Daten enthält, kann es auf alle Felder verweisen, die in der FROM-Klausel aufgeführt sind, auch wenn das Feld nicht in der SELECT-Anweisung enthalten ist, sofern die SELECT-Anweisung mindestens eine SQL-Aggregatfunktion enthält. Das Microsoft® Jet-Datenbankmodul kann nicht nach Memo- oder OLE-Objekt-Feldern gruppieren.

Alle Felder in der SELECT-Feldliste müssen entweder in der GROUP BY-Klausel enthalten sein oder als Argument für eine SQL-Aggregatfunktion angegeben werden.

Siehe auch
Prädikate ALL DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
FROM-Klausel (Microsoft Jet SQL) | SELECT...INTO-Anweisung (Microsoft Jet SQL)
HAVING-Klausel (Microsoft Jet SQL) | SQL Aggregatfunktionen (SQL)
ORDER BY-Klausel (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)

Beispiel

GROUP BY-Klausel (Beispiel)


GROUP BY-Klausel (Beispiel, DAO)

GROUP BY-Klausel (Beispiel)

Dieses Beispiel erstellt eine Liste eindeutiger Positionen und fügt jeder Position die Nummer des Angestellten hinzu.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub GroupByX1()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Zählen der Mitarbeiter

    ' in dieser Position.

    Set rst = dbs.OpenRecordset("SELECT Position, " _

        & "Count([Position]) AS PosAnzahl " _

        & "FROM Personal GROUP BY Position;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 25

    dbs.Close

End Sub

Dieses Beispiel berechnet für jeden eindeutigen Auftragstitel die Anzahl der Angestellten, die diese Position in Washington innehaben.

Sub GroupByX2()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Zählen der Mitarbeiter

    ' in dieser Position. Nur Mitarbeiter in der Region

    ' Washington berücksichtigen.

    Set rst = dbs.OpenRecordset("SELECT Position, " _

        & "Count(Position) AS PosAnzahl " _

        & "FROM Personal WHERE Region = 'WA' " _

        & "GROUP BY Position;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 25

    dbs.Close

End Sub


HAVING-Klausel (Microsoft Jet-SQL)

HAVING-Klausel

Gibt an, welche der gruppierten Datensätze in einer SELECT-Anweisung mit einer GROUP BY-Klausel angezeigt werden sollen. Nachdem GROUP BY Datensätze kombiniert, zeigt HAVING alle von der GROUP BY-Klausel gruppierten Datensätze an, die die in der HAVING-Klausel angegebenen Bedingungen erfüllen.

Syntax

SELECT Feldliste
FROM Tabelle
WHERE Auswahlkriterien
GROUP BY Gruppenfeldliste
[HAVING Gruppenkriterien]

Eine SELECT-Anweisung, die eine HAVING-Klausel enthält, besteht aus folgenden Teilen:

Teil | Beschreibung
Feldliste | Die Namen von Feldern, die zusammen mit Alias-Bezeichnungen für Feldnamen, SQL-Aggregatfunktionen, Auswahlprädikaten (ALL, DISTINCT, DISTINCTROW oder TOP) oder anderen Optionen für die SELECT-Anweisung abgerufen werden sollen.
Tabelle | Der Name der Tabelle, aus der Datensätze abgerufen werden. Weitere Informationen hierzu finden Sie unter FROM-Klausel.
Auswahlkriterien | Auswahlkriterien. Wenn die Anweisung eine WHERE-Klausel enthält, gruppiert das Microsoft Jet-Datenbankmodul Werte, nachdem die WHERE-Bedingungen für die Datensätze überprüft wurden.
Gruppenfeldliste | Die Namen von bis zu 10 Feldern zum Gruppieren von Datensätzen. Die Reihenfolge der Feldnamen in Gruppenfeldliste bestimmt die Gruppierungsebenen (von höchster zu niedrigster Ebene).
Gruppenkriterien | Ein Ausdruck, der bestimmt, welche gruppierten Datensätze angezeigt werden sollen.

Bemerkungen

HAVING ist optional.

HAVING hat eine ähnliche Funktion wie die WHERE-Klausel, die festlegt, welche Datensätze ausgewählt werden. Nachdem Datensätze mit GROUP BY gruppiert wurden, bestimmt HAVING, welche Datensätze angezeigt werden:

SELECT [Kategorie-Nr],

Sum(Lagerbestand)

FROM Artikel

GROUP BY [Kategorie-Nr]

HAVING Sum(Lagerbestand) > 100 AND LIKE "BOS*";

Eine HAVING-Klausel kann bis zu 40 Ausdrücke enthalten, die durch logische Operatoren wie And und Or verknüpft sind.

Siehe auch
Prädikate ALL DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
FROM-Klausel (Microsoft Jet SQL) | SELECT...INTO-Anweisung (Microsoft Jet SQL)
GROUP BY-Klausel (Microsoft Jet SQL) | SQL Aggregatfunktionen (SQL)
ORDER BY-Klausel (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)

Beispiel

HAVING-Klausel (Beispiel)


HAVING-Klausel (Beispiel, DAO)

HAVING-Klausel (Beispiel)

Dieses Beispiel wählt die Positionen aus, die mehr als ein Angestellter in der Washingtoner Region innehat.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub HavingX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Auswählen der Positionen, die mehrere

    ' Mitarbeiter in der Region Washington innehaben.

    Set rst = dbs.OpenRecordset("SELECT Position, " _

        & "Count(Position) as Total FROM Personal " _

        & "WHERE Region = 'WA' " _

        & "GROUP BY Position HAVING Count(Position) > 1;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt der

    ' Datensatzgruppe auszugeben.

    EnumFields rst, 25

    dbs.Close

End Sub


IN-Klausel (Microsoft Jet-SQL)

IN-Klausel

Kennzeichnet Tabellen in einer externen Datenbank, zu der das Microsoft Jet-Datenbankmodul eine Verbindung herstellen kann (z. B. eine dBASE- oder Paradox-Datenbank oder eine externe Microsoft® Jet-Datenbank).

Syntax

So kennzeichnen Sie eine Zieltabelle:

[SELECT | INSERT] INTO Ziel IN
{Pfad | ["Pfad" "Typ"] | ["" [Typ; DATABASE = Pfad]]}

So kennzeichnen Sie eine Quelltabelle:

FROM Tabellenausdruck IN
{Pfad | ["Pfad" "Typ"] | ["" [Typ; DATABASE = Pfad]]}

Eine SELECT-Anweisung, die eine IN-Klausel enthält, besteht aus folgenden Teilen:

Teil | Beschreibung
Ziel | Der Name der externen Tabelle, in die Daten eingefügt werden.
Tabellenausdruck | Der Name einer oder mehrerer Tabellen, aus denen Daten abgerufen werden. Das Argument kann ein einzelner Tabellenname sein, eine gespeicherte Abfrage oder ein zusammengesetzter Name, der sich aus einer Verknüpfung (INNER JOIN LEFT JOIN, oder RIGHT JOIN) ergibt.
Pfad | Der vollständige Pfad für das Verzeichnis oder die Datei, das oder die Tabelle enthält.
Typ | Die Bezeichnung für den Datenbanktyp, der zum Erstellen von Tabelle verwendet wird, wenn es sich nicht um eine Microsoft Jet-Datenbank handelt (z. B. dBASE III, dBASE IV, Paradox 3.x oder Paradox 4.x).

Bemerkungen

Mit Hilfe von IN können Sie eine Verbindung mit nur einer externen Datenbank gleichzeitig herstellen.

In einigen Fällen verweist das Argument Pfad auf das Verzeichnis, das die Datenbankdateien enthält. Beim Arbeiten mit dBASE-, Microsoft FoxPro®-, oder Paradox-Datenbanktabellen gibt das Pfadargument z. B. das Verzeichnis an, in dem die .DBF- oder .DB-Dateien enthalten sind. Der Dateiname für die Tabelle wird aus dem Argument Ziel oder Tabellenausdruck abgeleitet.

Sie geben eine Datenbank an, die keine Microsoft Jet-Datenbank ist, indem Sie ein Semikolon (;) an den Namen anhängen und ihn in Apostrophe (' ') oder Anführungszeichen (" ") einschließen. Beispielsweise ist sowohl 'dBASE IV;' als auch "dBASE IV;" zulässig.

Sie können auch das reservierte Wort DATABASE verwenden, um die externe Datenbank anzugeben. Die folgenden Zeilen geben beispielsweise dieselbe Tabelle an:

... FROM Tabelle IN  "" [dBASE IV; DATABASE=C:\DBASE\DATEN\VERTRIEB;];

... FROM Tabelle IN "C:\DBASE\DATEN\VERTRIEB" "dBASE IV;"

Anmerkungen

Sie arbeiten schneller und komfortabler, wenn Sie IN anstelle einer verknüpften Tabelle verwenden.

Sie können das reservierte Wort IN auch als Vergleichsoperator in einem Ausdruck verwenden. Weitere Informationen hierzu finden Sie unter In-Operator.

Siehe auch
FROM-Klausel (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
INNER JOIN-Operation (Microsoft Jet SQL) | SELECT...INTO-Anweisung (Microsoft Jet SQL)
INSERT INTO-Anweisung (Microsoft Jet SQL) | SQL Aggregatfunktionen (SQL)
Operationen LEFT JOIN, RIGHT JOIN (Microsoft Jet SQL) |

Beispiel

IN-Klausel (Beispiel)


INNER JOIN-Operation (Beispiel, DAO)

INNER JOIN-Operation (Beispiel)

Dieses Beispiel erstellt zwei Gleichheitsverknüpfungen: eine zwischen den Tabellen "Bestelldetails" und "Bestellungen" und eine andere zwischen den Tabellen "Bestellungen" und "Personal". Dies ist erforderlich, da die Tabelle "Personal" keine Umsatzzahlen und die Tabelle "Bestelldetails" keine Personaldaten enthält. Die Abfrage erstellt eine Liste der Angestellten und ihrer Gesamtumsätze.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub InnerJoinX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Erstellen einer Verknüpfung zwischen

    ' den Tabellen "Bestelldetails" und

    ' "Bestellungen" sowie einer anderen Verknüpfung

    ' zwischen den Tabellen "Bestellungen" und

    ' "Personal". Abrufen einer Liste der Angestellten und

    ' ihrer Gesamtumsätze.

    Set rst = dbs.OpenRecordset("SELECT DISTINCTROW " _

        & "Sum(Einzelpreis * Anzahl) AS Verkaufszahlen, " _

        & "(Vorname & Chr(32) & Nachname) AS Name " _

        & "FROM Personal INNER JOIN (Bestellungen " _

        & "INNER JOIN Bestelldetails " _

        & "ON Bestelldetails.[Bestell-Nr]= " _

        & "Bestellungen.[Bestell-Nr]) " _

        & "ON Bestellungen.[Personal-Nr]= " _

        & "Personal.[Personal-Nr] " _

        & "GROUP BY (Vorname & Chr(32) & Nachname);")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 20

    dbs.Close

End Sub


In-Operator (Microsoft Jet-SQL)

In-Operator

Stellt fest, ob der Wert eines Ausdrucks mit einem aus mehreren Werten in einer angegebenen Liste übereinstimmt.

Syntax

Ausdr [Not] In(Wert1, Wert2, . . .)

Bemerkungen

Der In-Operator besteht aus drei Teilen.

Teil | Beschreibung
Ausdr | Ausdruck, der das Feld kennzeichnet, das die auszuwertenden Daten enthält.
Wert1, Wert2 | Ausdruck oder Liste von Ausdrücken, gegen die Sie Ausdr auswerten möchten.

Wenn Ausdr in der Liste der Werte gefunden wurde, liefert der In-Operator den Wert True, andernfalls wird False zurückgegeben. Sie können den logischen Operator Not verwenden, um den gegenteiligen Zustand auszuwerten (d. h. um festzustellen, ob sich Ausdr nicht in der Liste der Werte befindet).

Sie können In z. B. verwenden, um festzustellen, welche Bestellungen in eine der Regionen aus einer Liste ausgeliefert werden:

SELECT *

FROM Bestellungen

WHERE Region In ('Dortmund','Bochum','Essen')

Siehe auch
SQL-Ausdrücke WHERE-Klausel (Microsoft Jet SQL)

Beispiel

In-Operator (Beispiel)


In-Operator (Beispiel, DAO)

In-Operator (Beispiel)

Das folgende Beispiel erstellt mit der Tabelle "Bestellungen" aus der Datenbank NORDWIND.MDB eine Abfrage, die alle Bestellungen für Lancashire und Essex sowie deren Lieferdatum beinhaltet.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub InX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Datensätze aus der Tabelle "Bestellungen" auswählen,

    ' deren Wert Region Lancashire oder Essex ist.

    Set rst = dbs.OpenRecordset("SELECT " _

        & "[Kunden-Code], Versanddatum FROM Bestellungen " _

        & "WHERE Region In " _

        & "('Lancashire','Essex');")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des

    ' Recordset-Objekts auszugeben.

    EnumFields rst, 12

    dbs.Close

End Sub


INSERT INTO-Anweisung (Beispiel, DAO)

INSERT INTO-Anweisung (Beispiel)

Dieses Beispiel wählt alle Datensätze aus der hypothetischen Tabelle "Neue Kunden" aus und fügt sie der Tabelle "Kunden" hinzu. Wenn einzelne Spalten nicht angegeben werden, müssen die Spaltennamen in der SELECT-Tabelle genau mit denen in der INSERT INTO-Tabelle übereinstimmen.

Sub InsertIntoX1()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Alle Datensätze in der Tabelle "Neue Kunden" auswählen

    ' und sie der Tabelle "Kunden" hinzufügen.

    dbs.Execute " INSERT INTO Kunden " _

        & "SELECT * " _

        & "FROM [Neue Kunden];"

    dbs.Close

End Sub

Dieses Beispiel erstellt einen neuen Datensatz in der Tabelle "Personal".

Sub InsertIntoX2()

    Dim dbs As Database

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Einen neuen Datensatz in der Tabelle Personal erstellen. Der

    ' Vorname ist Harry, der Nachname ist Washington,

    ' und die Position ist Trainee.

    dbs.Execute " INSERT INTO Personal " _

        & "(Vorname, Nachname, Position) VALUES " _

        & "('Harry', 'Washington', 'Trainee');"

    dbs.Close

End Sub


IN-Klausel (Beispiel, DAO)

IN-Klausel (Beispiel)

Die folgende Tabelle zeigt, wie Sie mit der IN-Klausel Daten aus einer externen Datenbank abrufen können. In jedem Beispiel wird angenommen, dass die hypothetische Tabelle "Kunden" in einer externen Datenbank gespeichert ist.

Externe Datenbank SQL-Anweisung
Microsoft® Jet-Datenbank SELECT [Kunden-Code]
FROM Kunden
IN OtherDB.mdb
WHERE [Kunden-Code] Like "A*";
dBASE III oder IV.
Zum Abrufen von Daten aus einer dBASE III-Tabelle muss "dBASE IV;" durch "dBASE III;".ersetzt werden 		SELECT [Kunden-Code]
FROM Kunden
IN "C:\DBASE\DATEN\VERKAUF" "dBASE IV;"
WHERE [Kunden-Code] Like "A*";
dBASE III oder IV mit DATABASE-Syntax. SELECT [Kunden-Code]
FROM Kunden
IN "" [dBASE IV; Datenbank=C:\DBASE\DATEN\VERKAUF;]
WHERE [Kunden-Code] Like "A*";
Paradox 3.x oder 4.x.
Zum Abrufen von Daten aus einer Paradox-Tabelle, Version 3.x, muss "Paradox 4.x;" durch "Paradox 3.x;" ersetzt werden. 		SELECT [Kunden-Code]
FROM Kunden
IN "C:\PARADOX\DATEN\VERKAUF" "Paradox 4.x;"
WHERE [Kunden-Code] Like "A*";
Paradox 3.x oder 4.x mit DATABASE-Syntax. SELECT [Kunden-Code]
FROM Kunden
IN "" [Paradox 4.x;Datenbank=C:\PARADOX\DATEN\VERKAUF;]
WHERE [Kunden-Code] Like "A*";
Ein Microsoft Excel-Arbeitsblatt SELECT [Kunden-Code], Firma
FROM [Kunde$]
IN "c:\Dokumente\xldaten.xls" "EXCEL 5.0;"
WHERE [Kunden-Code] Like "A*"
ORDER BY [Kunden-Code];
Ein Namensbereich in einem Arbeitsblatt SELECT [Kunden-Code], Firma
FROM Kundenbereich°
IN "c:\Dokumente\xldaten.xls" "EXCEL 5.0;"
WHERE [Kunden-Code] Like "A*"
ORDER BY [Kunden-Code];


LEFT JOIN-, RIGHT JOIN-Operationen (Beispiel, DAO)

LEFT JOIN-, RIGHT JOIN-Operationen (Beispiel)

Dieses Beispiel geht von der Existenz der hypothetischen Felder "Abteilung" und "Abteilungs-Nr" in einer Tabelle "Personal" aus. Beachten Sie, dass diese Felder nicht wirklich in der Tabelle "Personal" der Nordwind-Datenbank existieren.

Dieses Beispiel wählt alle Abteilungen aus, einschließlich der Abteilungen ohne Personal.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub LeftRightJoinX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Auswählen aller Abteilungen, auch wenn

    ' keine Mitarbeiter vorhanden sind.

    Set rst = dbs.OpenRecordset _

        ("SELECT [Abteilung], " _

        & "Vorname & Chr(32) & Nachname AS Name " _

        & "FROM Abteilung LEFT JOIN Personal " _

        & "ON Abteilungen.[Abteilungs-Nr]= " _

        & "Personal.[Abteilungs-Nr] " _

        & "ORDER BY Abteilung;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 20

    dbs.Close

End Sub


Like-Operator (Microsoft Jet-SQL)

Like-Operator

Wird zum Vergleichen eines Zeichenfolgenausdrucks mit einem Suchmuster in einem SQL-Ausdruck verwendet

Syntax

Ausdruck Like "Muster"

Die Syntax für den Like-Operator besteht aus folgenden Teilen:

Teil | Beschreibung
Ausdruck | In einer WHERE-Klausel verwendeter SQL-Ausdruck.
Muster | Zeichenfolge oder Zeichenfolgenkonstante, mit der Ausdruck verglichen wird.

Bemerkungen

Sie können den Like-Operator verwenden, um Werte in einem Feld zu finden, die mit dem von Ihnen angegebenen Muster übereinstimmen. Für Muster können Sie den vollständigen Wert (z. B. Like "Schmidt") oder Platzhalterzeichen angeben, um einen Bereich von Werten zu finden (z. B. Like "Schm*").

In einem Ausdruck können Sie den Like-Operator verwenden, um einen Feldwert mit einem Zeichenfolgenausdruck zu vergleichen. Wenn Sie z. B. Like "C*" in einer SQL-Abfrage eingeben, gibt die Abfrage alle Feldwerte zurück, die mit dem Buchstaben C beginnen.In einer Parameterabfrage können Sie den Benutzer zur Eingabe eines Suchmusters auffordern.

Im folgenden Beispiel werden Daten zurückgegeben, die mit dem Buchstaben P beginnen und anschließend einen Buchstaben von A bis F und drei Ziffern enthalten:

Like "P[A-F]###"

In der folgenden Tabelle wird gezeigt, wie Sie Like verwenden können, um Ausdrücke auf verschiedene Muster zu überprüfen.

Art der Entsprechung | Muster | Entsprechung (gibt True zurück) | Keine Entsprechung (gibt False zurück)
Mehrere Zeichen | a*a | aa, aBa, aBBBa | aBC
 | *ab* | abc, AABB, Xab | aZb, bac
Sonderzeichen | a[*]a | a*a | aaa
Mehrere Zeichen | ab* | abcdefg, abc | cab, aab
Einzelne Zeichen | a?a | aaa, a3a, aBa | aBBBa
Einzelne Ziffern | a#a | a0a, a1a, a2a | aaa, a10a
Zeichenbereich | [a-z] | f, p, j | 2, &
Außerhalb des Bereichs | [!a-z] | 9, &, % | b, a
Keine Ziffern | [!0-9] | A, a, &, ~ | 0, 1, 9
Kombination | a[!b-m]# | An9, az0, a99 | abc, aj0

Siehe auch
SQL-Ausdrücke | Verwenden von Platzhalterzeichen in Zeichenfolgenvergleichen
WHERE-Klausel (Microsoft Jet SQL) |

Beispiel

Like-Operator (Beispiel)


Like-Operator (Beispiel, DAO)

Like-Operator (Beispiel)

Dieses Beispiel gibt eine Liste der Angestellten zurück, deren Namen mit den Buchstaben A bis D beginnen.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub LikeX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Zurückgeben einer Liste der Angestellten, deren Namen mit

    ' den Buchstaben A bis D beginnen.

    Set rst = dbs.OpenRecordset("SELECT Nachname, " _

        & "Vorname FROM Personal " _

        & " WHERE Nachname Like '[A-D]*';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 15

    dbs.Close

End Sub


Min-, Max-Funktionen (Microsoft Jet-SQL)

Min-, Max-Funktionen

Geben den kleinsten oder größten Wert aus einer Menge von Werten zurück, die in einem bestimmten Feld einer Abfrage enthalten sind.

Syntax

Min(Ausdr)

Max(Ausdr)

Der Platzhalter Ausdr stellt einen Zeichenfolgenausdruck dar, der das Feld mit den Daten kennzeichnet, die ausgewertet werden sollen, oder einen Ausdruck, der eine Berechnung mit den Daten in diesem Feld durchführt. Die Operanden in Ausdr können den Namen eines Tabellenfeldes, einer Konstante oder einer Funktion (d. h. eine integrierte oder benutzerdefinierte Funktion, aber keine der anderen SQL-Aggregatfunktionen) enthalten.

Bemerkungen

Sie können Min und Max verwenden, um den kleinsten und größten Wert in einem Feld basierend auf der angegebenen Zusammenfassung oder Gruppierung zu bestimmen. Sie können diese Funktionen z. B. verwenden, um die niedrigsten und die höchsten Frachtkosten zurückzugeben. Wenn keine Art der Zusammenfassung angegeben wurde, wird die gesamte Tabelle verwendet.

Sie können Min und Max in einem Abfrageausdruck und in der SQL-Eigenschaft eines QueryDef-Objekts oder beim Erstellen eines Recordset-Objekts auf Basis einer SQL-Abfrage verwenden.

Siehe auch

SQL-Aggregatfunktionen (SQL)

Beispiel

Min-, Max-Funktionen (Beispiel)


Min-, Max-Funktionen (Beispiel, DAO)

Min-, Max-Funktionen (Beispiel)

Dieses Beispiel verwendet die Tabelle "Bestellungen", um die niedrigsten und die höchsten Frachtkosten für Bestellungen mit dem Ziel Großbritannien zurückzugeben.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub MinMaxX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Zurückgeben der niedrigsten und höchsten Frachtkosten für

    ' die nach Großbritannien geliefert wurden.

    Set rst = dbs.OpenRecordset("SELECT " _

        & "Min(Frachtkosten) AS [Niedrigste Frachtkosten], " _

        & "Max(Frachtkosten)AS [Höchste Frachtkosten] " _

        & "FROM Bestellungen WHERE Bestimmungsland = 'Großbritannien';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 12

    dbs.Close

End Sub


ORDER BY-Klausel (Microsoft Jet-SQL)

ORDER BY-Klausel

Sortiert die Ergebnisdatensätze einer Abfrage nach einem oder mehreren angegebenen Feldern in aufsteigender oder absteigender Reihenfolge.

Syntax

SELECT Feldliste
FROM Tabelle
WHERE Auswahlkriterien
[ORDER BY Feld1 [ASC | DESC ][, Feld2 [ASC | DESC ]][, ...]]]

Eine SELECT-Anweisung, die eine ORDER BY-Klausel enthält, besteht aus folgenden Teilen:

Teil | Beschreibung
Feldliste | Die Namen von Feldern, die zusammen mit Alias-Bezeichnungen für Feldnamen, SQL-Aggregatfunktionen, Auswahlprädikaten (ALL, DISTINCT, DISTINCTROW oder TOP) oder anderen Optionen für die SELECT-Anweisung abgerufen werden sollen.
Tabelle | Der Name der Tabelle, aus der Datensätze abgerufen werden. Weitere Informationen hierzu finden Sie unter FROM-Klausel.
Auswahlkriterien | Auswahlkriterien. Wenn die Anweisung eine WHERE-Klausel enthält, sortiert das Microsoft Jet-Datenbankmodul Werte, nachdem die WHERE-Bedingungen für die Datensätze überprüft wurden.
Feld1, Feld2 | Die Namen der Felder, nach denen Datensätze sortiert werden sollen.

Bemerkungen

ORDER BY ist optional. Wenn Sie jedoch möchten, dass Ihre Daten in sortierter Reihenfolge angezeigt werden, müssen Sie ORDER BY verwenden.

Die Standardeinstellung für die Sortierreihenfolge ist aufsteigend (A bis Z, 0 bis 9). In den beiden folgenden Beispielen werden die Namen der Angestellten nach ihren Nachnamen sortiert:

SELECT Nachname, Vorname

FROM Personal

ORDER BY Nachname;

SELECT Nachname, Vorname

FROM Personal

ORDER BY Nachname ASC;

Sie können die Daten in absteigender Reihenfolge (Z bis A, 9 bis 0) sortieren, indem Sie am Ende jedes Feldes, nach dem in absteigender Reihenfolge sortiert werden soll, das reservierte Wort DESC angeben. Das folgende Beispiel wählt Gehälter aus und sortiert sie in absteigender Reihenfolge:

SELECT Nachname, Gehalt

FROM Personal

ORDER BY Gehalt DESC, Nachname;

Wenn Sie ein Feld mit Memo oder OLE-Objekt-Daten in der ORDER BY-Klausel angeben, tritt ein Fehler auf. Das Microsoft Jet-Datenbankmodul kann Felder dieses Typs nicht sortieren.

ORDER BY ist normalerweise der letzte Eintrag in einer SQL-Anweisung.

Sie können in der ORDER BY-Klausel noch weitere Felder angeben. Die Datensätze werden zuerst nach dem ersten im Anschluss an ORDER BY angegebenen Feld sortiert. Datensätze, die in diesem Feld denselben Wert haben, werden dann nach dem Wert im zweiten aufgeführten Feld sortiert usw.

Siehe auch
Prädikate ALL DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
FROM-Klausel (Microsoft Jet SQL) | SELECT...INTO-Anweisung (Microsoft Jet SQL)
GROUP BY-Klausel (Microsoft Jet SQL) | SQL Aggregatfunktionen (SQL)
HAVING-Klausel (Microsoft Jet SQL) | WHERE-Klausel (Microsoft Jet SQL)

Beispiel

ORDER BY-Klausel (Beispiel)


ORDER BY-Klausel (Beispiel, DAO)

ORDER BY-Klausel (Beispiel)

Die SQL-Anweisung zeigt im folgenden Beispiel die Verwendung der ORDER BY-Klausel, um Datensätze in absteigender Reihenfolge (Z-A) nach Nachnamen zu sortieren.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub OrderByX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Auswählen der Werte für Nachname und Vorname aus

    ' der Tabelle "Personal" und Sortieren in absteigender

    ' Reihenfolge.

    Set rst = dbs.OpenRecordset("SELECT Nachname, " _

        & "Vorname FROM Personal " _

        & "ORDER BY Nachname DESC;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt der

    ' Datensatzgruppe auszugeben.

    EnumFields rst, 12

    dbs.Close

End Sub


PARAMETERS-Deklaration (Beispiel, DAO)

PARAMETERS-Deklaration (Beispiel)

In diesem Beispiel muss der Benutzer eine Position angeben, und die Position wird dann als Kriterium für eine Abfrage verwendet.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub ParametersX()

    Dim dbs As Database, qdf As QueryDef

    Dim rst As Recordset

    Dim strSql As String, strParm As String

    Dim strMessage As String

    Dim intCommand As Integer

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Parameters-Klausel definieren.

    strParm = "PARAMETERS [Personalposition] TEXT; "

    ' Definieren einer SQL-Anweisung mit dem PARAMETERS-

    ' Klausel.

    strSql = strParm & "SELECT Nachname, Vorname, " _

        & "[Personal-Nr]" _

        & "FROM Personal " _

        & "WHERE Position =[Personalposition];"

    ' Erstellen eines QueryDef-Objekts basierend auf der

    ' SQL-Anweisung.

    Set qdf = dbs.CreateQueryDef _

        ("Personalsuche", strSql)

    Do While True

        strMessage = "In Personal nach Position suchen " _

            & "Position:" & Chr(13) _

            & "Position auswählen:" & Chr(13) _

            & "   1 - Verkaufsleiter" & Chr(13) _

            & "   2 - Verkaufsrepräsentant" & Chr(13) _

            & "   3 - Interner Verkaufskoordinator "

        intCommand = Val(InputBox(strMessage))

        Select Case intCommand

            Case 1

                qdf("Personalposition") = _

                    "Verkaufsleiter"

            Case 2

                qdf("Personalposition") = _

                    "Verkaufsrepräsentant"

            Case 3

                qdf("Personalposition") = _

                    "Interner Verkaufskoordinator"

            Case Else

                Exit Do

        End Select

        ' Temporäres Recordset-Objekt vom Typ Snapshot erstellen.

        Set rst = qdf.OpenRecordset(dbOpenSnapshot)

        ' Recordset-Objekt auffüllen.

        rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

        EnumFields rst, 12

    Loop

    ' QueryDef löschen, da dies ein

    ' Beispiel ist.

    dbs.QueryDefs.Delete "Personalsuche"

    dbs.Close

End Sub


CREATE PROCEDURE-Anweisung, PROCEDURE-Klausel (Beispiel, DAO)

CREATE PROCEDURE-Anweisung, PROCEDURE-Klausel (Beispiel)

Dieses Beispiel gibt der Abfrage den Namen "Kategorieliste".

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub ProcedureX()

    Dim dbs As Database, rst As Recordset

    Dim qdf As QueryDef, strSql As String

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    strSql = "PROCEDURE Kategorieliste; " _

        & "SELECT DISTINCTROW Kategoriename, " _

        & "[Kategorie-Nr] FROM Kategorien " _

        & "ORDER BY Kategoriename;"

    ' Erstellen eines benannten QueryDef-Objekts basierend auf der SQL-

    ' Anweisung.

    Set qdf = dbs.CreateQueryDef("NewQry", strSql)

    ' Temporäres Recordset-Objekt vom Typ Snapshot erstellen.

    Set rst = qdf.OpenRecordset(dbOpenSnapshot)

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 15

    ' QueryDef löschen, da dies ein

    ' Beispiel ist.

    dbs.QueryDefs.Delete "NewQry"

    dbs.Close

End Sub


SELECT...INTO-Anweisung (Beispiel, DAO)

SELECT...INTO-Anweisung (Beispiel)

Dieses Beispiel wählt alle Datensätze in der Tabelle "Personal" aus und kopiert sie in eine neue Tabelle namens "Personalsicherung".

Sub SelectIntoX()

    Dim dbs As Database

    Dim qdf As QueryDef

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Alle Datensätze in der Tabelle Personal auswählen

    ' und sie in eine neue Tabelle, Personalsicherung,

    ' kopieren.

    dbs.Execute "SELECT Personal.* INTO " _

        & "Personalsicherung FROM Personal;"

    ' Tabelle löschen, da dies ein Beispiel ist.

    dbs.Execute "DROP TABLE Personalsicherung;"

    dbs.Close

End Sub


SELECT-Anweisung, FROM-Klausel (Beispiel, DAO)

SELECT-Anweisung, FROM-Klausel (Beispiel)

Einige der folgenden Beispiele gehen von einem Feld "Gehalt" in der Tabelle "Personal" aus. Beachten Sie, dass es dieses Feld in der Tabelle "Personal" der Nordwind-Datenbank nicht gibt.

Dieses Beispiel erstellt ein Recordset-Objekt vom Typ Dynaset, das auf einer SQL-Anweisung basiert, die die Felder "Nachname" und "Vorname" in allen Datensätzen der Tabelle "Personal" auswählt. Es ruft die Prozedur EnumFields auf, die den Inhalt eines Recordset-Objekts im Testfenster ausgibt.

Sub SelectX1()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Auswählen der Werte für Nachname und Vorname aller

    ' Datensätze in der Tabelle "Personal".

    Set rst = dbs.OpenRecordset("SELECT Nachname, " _

        & "Vorname FROM Personal;")

    ' Datensatz auffüllen.

    rst.MoveLast

' EnumFields aufrufen, um den Inhalt des Recordset-

' Objekts auszugeben.

    EnumFields rst,12

dbs.Close

End Sub

Dieses Beispiel zählt die Datensätze, die einen Eintrag im Feld "PLZ" haben, und benennt das Feld "AnzahlPLZ".

Sub SelectX2()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Die Datensätze zählen, die einen Wert für "PLZ" haben,

    ' und das Ergebnis an das Feld "AnzahlPLZ"

    ' zurückgeben.

    Set rst = dbs.OpenRecordset("SELECT Count " _

        & "(PLZ) AS AnzahlPLZ FROM Kunden;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des

    ' Recordset-Objekts auszugeben.

    ' Angeben der Feldbreite = 12.

    EnumFields rst, 12

    dbs.Close

End Sub

Dieses Beispiel zeigt die Zahl der Beschäftigten sowie ihre durchschnittlichen und höchsten Gehälter.

Sub SelectX3()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

Set dbs = OpenDatabase("Nordwind.mdb")

    ' Zählen der Mitarbeiter, Berechnen des

    ' Durchschnittsgehalts und Zurückgeben des höchsten Gehalts.

    Set rst = dbs.OpenRecordset("SELECT Count (*) " _

        & "AS GesamtPersonalAnzahl, Avg(Gehalt) " _

        & "AS Durchschnittsgehalt, Max(Gehalt) " _

        & "AS HöchstesGehalt FROM Personal;")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des

    ' Recordset-Objekts auszugeben.

 ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 17

    dbs.Close

End Sub

Die Sub-Prozedur EnumFields wird an das Recordset-Objekt von der aufrufenden Prozedur übergeben. Dann formatiert die Prozedur die Felder des Recordset-Objekts und gibt sie im Testfenster aus. Die Variable intFldLen gibt die gewünschte Feldbreite an. Einige Felder werden möglicherweise gekürzt.

Sub EnumFields(rst As Recordset, intFldLen As Integer)

    Dim lngRecords As Long, lngFields As Long

    Dim lngRecCount As Long, lngFldCount As Long

    Dim strPosition As String, strTemp As String

    ' Setzen der Variablen lngRecords auf die Anzahl der

    ' Datensätze in der Datensatzgruppe.

    lngRecords = rst.RecordCount

    ' Setzen der Variablen lngFields auf die Anzahl der

    ' Felder in der Datensatzgruppe.

    lngFields = rst.Fields.Count

    Debug.Print "Es gibt " & lngRecords _

        & " Datensätze mit " & lngFields _

        & " Feldern in der Datensatzgruppe."

    Debug.Print

    ' Eine Zeichenfolge erstellen, die den Spaltenkopf ausgibt.

    strPosition = "Bericht  "

    For lngFldCount = 0 To lngFields - 1

        strPosition = strPosition _

        & Left(rst.Fields(lngFldCount).Name _

        & Space(intFldLen), intFldLen)

    Next lngFldCount

    ' Spaltenkopf ausgeben.

    Debug.Print strPosition

    Debug.Print

    ' Schrittweises Abarbeiten des Recordset-Objekts;

    ' Ausgeben der Datensatznummer

    ' und der Feldwerte.

    rst.MoveFirst

    For lngRecCount = 0 To lngRecords - 1

        Debug.Print Right(Space(6) & _

            Str(lngRecCount), 6) & "  ";

        For lngFldCount = 0 To lngFields - 1

            ' Nach Null-Werten suchen.

            If IsNull(rst.Fields(lngFldCount)) Then

                strTemp = "<null>"

            Else

                ' strTemp auf Feldinhalt festlegen.

                Select Case _

                    rst.Fields(lngFldCount).Type

                    Case 11

                        strTemp = ""

                    Case dbText, dbMemo

                        strTemp = _

                            rst.Fields(lngFldCount)

                    Case Else

                        strTemp = _

                            str(rst.Fields(lngFldCount))

                End Select

            End If

            Debug.Print Left(strTemp _

                & Space(intFldLen), intFldLen);

        Next lngFldCount

        Debug.Print

        rst.MoveNext

    Next lngRecCount

End Sub


StDev-, StDevP-Funktionen (Microsoft Jet-SQL)

StDev-, StDevP-Funktionen

Geben Schätzungen für die Standardabweichung einer Grundgesamtheit oder einer Stichprobe aus einer Grundgesamtheit zurück. Die Grundgesamtheit oder Stichprobe wird durch eine Menge von Werten dargestellt, die in einem bestimmten Feld einer Abfrage enthalten sind.

Syntax

StDev(Ausdr)

StDevP(Ausdr)

Der Platzhalter Ausdr stellt einen Zeichenfolgenausdruck dar, der das Feld mit den numerischen Daten kennzeichnet, die ausgewertet werden sollen, oder einen Ausdruck, der eine Berechnung mit den Daten in diesem Feld durchführt. Die Operanden in Ausdr können den Namen eines Tabellenfeldes, einer Konstante oder einer Funktion (d. h. eine integrierte oder benutzerdefinierte Funktion, aber keine der anderen SQL-Aggregatfunktionen) enthalten.

Bemerkungen

Die StDevP-Funktion wertet eine Grundgesamtheit aus, die StDev-Funktion eine Stichprobe aus einer Grundgesamtheit.

Wenn die zugrunde liegende Abfrage weniger als zwei Datensätze (oder für StDevP keine Datensätze) enthält, liefern diese Funktionen den Wert Null (wodurch angegeben wird, dass eine Standardabweichung nicht berechnet werden kann).

Sie können die Funktionen StDev und StDevP in einem Abfrageausdruck verwenden. Sie können diesen Ausdruck auch in der SQL-Eigenschaft eines QueryDef-Objekts oder beim Erstellen eines Recordset-Objekts auf Basis einer SQL-Abfrage verwenden.

Siehe auch
Avg-Funktion (Microsoft Jet SQL) | SQL-Aggregatfunktionen (SQL)
SELECT-Anweisung (Microsoft Jet SQL) | SUM-Funktion (Microsoft Jet SQL)

Beispiel

StDev-, StDevP-Funktionen (Beispiel)


StDev-, StDevP-Funktionen (Beispiel, DAO)

StDev-, StDevP-Funktionen (Beispiel)

Dieses Beispiel verwendet die Tabelle "Bestellungen", um die Standardabweichung der Frachtkosten für Bestellungen mit dem Ziel Großbritannien zu schätzen.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub StDevX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Berechnen der Standardabweichung der Frachtkosten

    ' für Bestellungen, die nach Großbritannien geliefert wurden.

    Set rst = dbs.OpenRecordset("SELECT " _

        & "StDev(Frachtkosten) " _

        & "AS [Frachtkosten Abweichung] FROM Bestellungen " _

        & " WHERE Bestimmungsland = 'Großbritannien';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 15

    Debug.Print

    Set rst = dbs.OpenRecordset("SELECT " _

        & "StDevP(Frachtkosten) " _

        & "AS [Frachtkosten DevP] FROM Bestellungen " _

        & " WHERE Bestimmungsland = 'Großbritannien';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 15

    dbs.Close

End Sub


SQL-Unterabfragen (Beispiel, DAO)

SQL-Unterabfragen (Beispiel)

Dieses Beispiel führt den Namen und die Kontaktperson jedes Kunden auf, der im zweiten Quartal von 1995 eine Bestellung aufgegeben hat.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub SubQueryX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Auflisten des Namens und Ansprechpartners jedes Kunden,

    ' für eine Bestellung im zweiten Quartal

    ' 1995 existiert.

    Set rst = dbs.OpenRecordset("SELECT KontaktPerson," _

        & " Firma, Position, Telefon" _

        & " FROM Kunden" _

        & " WHERE [Kunden-Code]" _

        & " IN (SELECT [Kunden-Code] FROM Bestellungen" _

        & " WHERE Bestelldatum Between #04/1/95#" _

        & " And #07/1/95#);")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 25

    dbs.Close

End Sub


Sum-Funktion (Microsoft Jet-SQL)

Sum-Funktion

Gibt die Summe einer Menge von Werten zurück, die in einem bestimmten Feld einer Abfrage enthalten sind.

Syntax

Sum(Ausdr)

Der Platzhalter Ausdr stellt einen Zeichenfolgenausdruck dar, der das Feld kennzeichnet, das die zu summierenden numerischen Daten enthält, oder einen Ausdruck, der eine Berechnung mit den Daten in diesem Feld durchführt. Die Operanden in Ausdr können den Namen eines Tabellenfeldes, einer Konstante oder einer Funktion (d. h. eine integrierte oder benutzerdefinierte Funktion, aber keine der anderen SQL-Aggregatfunktionen) enthalten.

Bemerkungen

Die Sum-Funktion summiert die Werte in einem Feld. Sie können Sum z. B. verwenden, um die gesamten Frachtkosten zu ermitteln.

Die Sum-Funktion ignoriert Datensätze, die Null-Felder enthalten. Im folgenden Beispiel wird gezeigt, wie Sie die Summe der Produkte der Felder "Einzelpreis" und "Anzahl" berechnen können:

SELECT

Sum(Einzelpreis * Anzahl)

AS Gesamtumsatz FROM Bestelldetails;

Sie können die Sum-Funktion in einem Abfrageausdruck verwenden. Sie können diesen Ausdruck auch in der SQL-Eigenschaft eines QueryDef-Objekts oder beim Erstellen eines Recordset-Objekts auf Basis einer SQL-Abfrage verwenden.

Siehe auch
Count-Funktion (Microsoft Jet SQL) | SQL-Aggregatfunktionen (SQL)
SELECT-Anweisung (Microsoft Jet SQL) |

Beispiel

Sum-Funktion (Beispiel)


Sum-Funktion (Beispiel, DAO)

Sum-Funktion (Beispiel)

Dieses Beispiel verwendet die Tabelle "Bestellungen", um die Gesamtumsätze für Bestellungen mit dem Ziel Großbritannien zu berechnen.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub SumX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Berechnen der Gesamtumsätze für Bestellungen,

    ' die nach Großbritannien geliefert wurden.

    Set rst = dbs.OpenRecordset("SELECT" _

        & " Sum(Einzelpreis*Anzahl)" _

        & " AS [Gesamtverkäufe GB] FROM Bestellungen" _

        & " INNER JOIN Bestelldetails ON" _

        & " Bestellungen.[Bestell-Nr] = Bestelldetails.[Bestell-Nr]" _

        & " WHERE (Bestimmungsland = 'Großbritannien');")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 15

    dbs.Close

End Sub


TRANSFORM-Anweisung (Beispiel, DAO)

TRANSFORM-Anweisung (Beispiel)

Dieses Beispiel erstellt mit der SQL TRANSFORM-Klausel eine Kreuztabellenabfrage, die zeigt, wie viele Bestellungen jeder Angestellte 1994 in jedem Kalendervierteljahr angenommen hat. Die Funktion SQLTRANSFORMOutput wird benötigt, damit die Prozedur ausgeführt werden kann.

Sub TransformX1()

    Dim dbs As Database

    Dim strSQL As String

    Dim qdfTRANSFORM As QueryDef

    strSQL = "PARAMETERS prmYear SHORT; TRANSFORM " _

        & "Count([Bestell-Nr]) " _

        & "SELECT Vorname & "" "" & Nachname AS " _

        & "[Voller Name] FROM Personal INNER JOIN Bestellungen " _

        & "ON Personal.[Personal-Nr]= " _

        & "Bestellungen.[Personal-Nr] WHERE DatePart " _

        & "(""yyyy"", Bestelldatum) = [prmYear] "

       strSQL = strSQL & "GROUP BY Vorname & " _

        & """ "" & Nachname " _

        & "ORDER BY Vorname & "" "" & Nachname " _

        & "PIVOT DatePart(""q"", Bestelldatum)"

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    Set qdfTRANSFORM = dbs.CreateQueryDef _

        ("", strSQL)

    SQLTRANSFORMOutput qdfTRANSFORM, 1994

    dbs.Close

End Sub

Dieses Beispiel erstellt mit der SQL TRANSFORM-Klausel eine etwas kompliziertere Kreuztabellenabfrage; sie zeigt in DM die Gesamtsumme der angenommenen Bestellungen jedes Angestellten in jeden Kalendervierteljahr des Jahres 1994. Die Funktion SQLTRANSFORMOutput wird benötigt, damit die Prozedur ausgeführt werden kann.

Sub TransformX2()

    Dim dbs As Database

    Dim strSQL As String

    Dim qdfTRANSFORM As QueryDef

    strSQL = "PARAMETERS prmYear SMALLINT; TRANSFORM " _

        & "Sum(Zwischensumme) SELECT Vorname & "" """ _

        & "& Nachname AS FullName " _

        & "FROM Personal INNER JOIN " _

        & "(Bestellungen INNER JOIN [Bestellzwischensummen] " _

        & "ON Bestellungen.[Bestell-Nr] = " _

        & "[Bestellzwischensummen].[Bestell-Nr]) " _

        & "ON Personal.[Personal-Nr]= " _

        & "Bestellungen.[Personal-Nr] WHERE DatePart " _

        & "(""yyyy"", Bestelldatum) = [prmYear] "

       strSQL = strSQL & "GROUP BY Vorname & "" """ _

        & "& Nachname " _

        & "ORDER BY Vorname & "" "" & Nachname " _

        & "PIVOT DatePart(""q"",Bestelldatum)"

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    Set qdfTRANSFORM = dbs.CreateQueryDef _

        ("", strSQL)

    SQLTRANSFORMOutput qdfTRANSFORM, 1994

    dbs.Close

End Sub

Function SQLTRANSFORMOutput(qdfTemp As QueryDef, _

    intYear As Integer)

    Dim rstTRANSFORM As Recordset

    Dim fldLoop As Field

    Dim booFirst As Boolean

    qdfTemp.PARAMETERS!prmYear = intYear

    Set rstTRANSFORM = qdfTemp.OpenRecordset()

    Debug.Print qdfTemp.SQL

    Debug.Print

    Debug.Print , , "Quartal"

    With rstTRANSFORM

        booFirst = True

        For Each fldLoop In .Fields

            If booFirst = True Then

                Debug.Print fldLoop.Name

                Debug.Print , ;

                booFirst = False

            Else

                Debug.Print , fldLoop.Name;

            End If

        Next fldLoop

        Debug.Print

        Do While Not .EOF

            booFirst = True

            For Each fldLoop In .Fields

                If booFirst = True Then

                    Debug.Print fldLoop

                    Debug.Print , ;

                    booFirst = False

                Else

                    Debug.Print , fldLoop;

                End If

            Next fldLoop

            Debug.Print

            .MoveNext

        Loop

    End With

End Function


UNION-Operation (Beispiel, DAO)

UNION-Operation (Beispiel)

Dieses Beispiel ruft die Namen und Orte aller Lieferanten und Kunden ab, die in Brasilien ansässig sind.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub UnionX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Ermitteln der Namen und Städte aller Lieferanten

    ' und Kunden in Brasilien.

    Set rst = dbs.OpenRecordset("SELECT Firma," _

        & " Ort FROM Lieferanten" _

        & " WHERE Land = 'Brasilien' UNION" _

        & " SELECT Firma, Ort FROM Kunden" _

        & " WHERE Land = 'Brasilien';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 12

    dbs.Close

End Sub


UPDATE-Anweisung (Beispiel, DAO)

UPDATE-Anweisung (Beispiel)

Ändert den Wert im Feld "Vorgesetzte(r)" auf 5 für alle Personaldatensätze, bei denen das Feld "Vorgesetzte(r)" momentan den Wert 2 hat.

Sub UpdateX()

    Dim dbs As Database

    Dim qdf As QueryDef

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Ändern der Werte im Feld Vorgesetzte(r) in 5 für alle

    ' Personaldatensätze, in denen die Werte für Vorgesetzte(r)aktuell

    ' 2 sind.

    dbs.Execute "UPDATE Personal " _

        & "SET [Vorgesetzte(r)] = 5 " _

        & "WHERE [Vorgesetzte(r)] = 2;"

    dbs.Close

End Sub


Var-, VarP-Funktionen (Microsoft Jet-SQL)

Var-, VarP-Funktionen

Geben Schätzungen der Varianz einer Grundgesamtheit oder einer Stichprobe aus einer Grundgesamtheit zurück. Die Grundgesamtheit oder Stichprobe wird durch eine Menge von Werten dargestellt, die in einem bestimmten Feld einer Abfrage enthalten sind.

Syntax

Var(Ausdr)

VarP(Ausdr)

Der Platzhalter Ausdr stellt einen Zeichenfolgenausdruck dar, der das Feld mit den numerischen Daten kennzeichnet, die ausgewertet werden sollen, oder einen Ausdruck, der eine Berechnung mit den Daten in diesem Feld durchführt. Die Operanden in Ausdr können den Namen eines Tabellenfeldes, einer Konstante oder einer Funktion (d. h. eine integrierte oder benutzerdefinierte Funktion, aber keine der anderen SQL-Aggregatfunktionen) enthalten.

Bemerkungen

Die VarP-Funktion wertet eine Grundgesamtheit aus, die Var-Funktion eine Stichprobe aus einer Grundgesamtheit.

Wenn die zugrunde liegende Abfrage weniger als zwei Datensätze enthält, geben die Funktionen Var und VarP einen Null-Wert zurück (der anzeigt, dass keine Varianz berechnet werden kann).

Sie können die Funktionen Var und VarP in einem Abfrageausdruck oder in einer SQL-Anweisung verwenden.

Siehe auch

SQL-Aggregatfunktionen (SQL)

Beispiel

VAR-, VARP-Funktionen (Beispiel)


Var-, VarP-Funktionen (Beispiel, DAO)

Var-, VarP-Funktionen (Beispiel)

Dieses Beispiel verwendet die Tabelle "Bestellungen", um die Varianz der Frachtkosten für Bestellungen mit dem Ziel Großbritannien zu schätzen.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub VarX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Berechnen der Varianz der Frachtkosten für Bestellungen,

    ' die nach Großbritannien geliefert wurden.

    Set rst = dbs.OpenRecordset("SELECT " _

        & "Var(Frachtkosten) " _

        & "AS [GB Frachtkosten Varianz] " _

        & "FROM Bestellungen WHERE Bestimmungsland = 'Großbritannien';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 20

    Debug.Print

    Set rst = dbs.OpenRecordset("SELECT " _

        & "VarP(Frachtkosten) " _

        & "AS [GB Frachtkosten Varianz G] " _

        & "FROM Bestellungen WHERE Bestimmungsland = 'Großbritannien';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    ' Übergeben des Recordset-Objekts und

    ' der gewünschten Feldbreite.

    EnumFields rst, 20

    dbs.Close

End Sub


WHERE-Klausel (Microsoft Jet-SQL)

WHERE-Klausel

Gibt an, auf welche Datensätze aus den in der FROM aufgeführten Tabellen eine SELECT-, UPDATE-, oder DELETE-Anweisung sich auswirkt.

Syntax

SELECT Feldliste
FROM Tabellenausdruck
WHERE Kriterien

Eine SELECT-Anweisung, die eine WHERE-Klausel enthält, besteht aus folgenden Teilen:

Teil | Beschreibung
Feldliste | Die Namen von Feldern, die zusammen mit Alias-Bezeichnungen für Feldnamen, Auswahlprädikaten (ALL, DISTINCT, DISTINCTROW oder TOP) oder anderen Optionen für die SELECT-Anweisung abgerufen werden sollen.
Tabellenausdruck | Der Name einer oder mehrerer Tabellen, aus denen Daten abgerufen werden.
Kriterien | Ein Ausdruck mit Kriterien, die Datensätze erfüllen müssen, um ins Abfrageergebnis aufgenommen zu werden.

Bemerkungen

Das Microsoft Jet-Datenbankmodul wählt die Datensätze aus, die die in der WHERE-Klausel aufgeführten Bedingungen erfüllen. Wenn Sie keine WHERE-Klausel angeben, gibt die Abfrage alle Zeilen aus der Tabelle zurück. Wenn Sie in Ihrer Abfrage mehrere Tabellen angeben und keine WHERE- oder JOIN-Klausel angegeben haben, erzeugt die Abfrage ein kartesisches Produkt der Tabellen.

WHERE ist optional, muss aber auf FROM folgen, wenn es angegeben wird. Sie können z. B. alle Angestellten der Vertriebsabteilung (WHERE Abteilung = 'Vertrieb') oder alle Kunden im Alter von 18 bis 30 Jahren (WHERE Alter Between 18 And 30) auswählen.

Wenn Sie keine JOIN-Klausel verwenden, um SQL-Verknüpfungsoperationen auf mehreren Tabellen durchzuführen, kann das zurückgegebene Recordset-Objekt nicht aktualisiert werden.

WHERE hat eine ähnliche Funktion wie HAVING. WHERE bestimmt, welche Datensätze ausgewählt werden. Analog dazu bestimmt HAVING, welche Datensätze angezeigt werden, nachdem sie mit GROUP BY gruppiert wurden.

Verwenden Sie die WHERE-Klausel, um Datensätze auszuschließen, die nicht von einer GROUP BY-Klausel gruppiert werden sollen.

Sie können verschiedene Ausdrücke verwenden, um zu bestimmen, welche Datensätze die SQL-Anweisung zurückgibt. Die folgende SQL-Anweisung wählt z. B. alle Angestellten aus, deren Gehalt DM 40.000 übersteigt:

SELECT Nachname, Gehalt

FROM Personal

WHERE Gehalt > 40000;

Eine WHERE-Klausel kann bis zu 40 Ausdrücke enthalten, die durch logische Operatoren wie And und Or verknüpft sind.

Wenn Sie einen Feldnamen eingeben, der ein Leerzeichen oder Satzzeichen enthält, müssen Sie den Namen in eckige Klammern ([ ]) einschließen. Zum Beispiel könnte eine Kundeninformationstabelle Informationen über bestimmte Kunden enthalten:

SELECT [Vom Kunden bevorzugtes Restaurant]

Wenn Sie das Argument Kriterien angeben, müssen Datumsliterale im amerikanischen Datumsformat angegeben werden, auch wenn Sie nicht die amerikanische Version des Microsoft Jet-Datenbankmoduls verwenden. Der 10. Mai 1996 wird z. B. in Deutschland in der Form 10.5.96 und in den USA in der Form 5/10/96 geschrieben. Schließen Sie Datumsangaben auf jeden Fall in #-Zeichen ein, wie in den folgenden Beispielen gezeigt.

Zur Suche nach Datensätzen vom 10. Mai 1996 in einer Datenbank mit deutschen Einträgen müssen Sie die folgende SQL-Anweisung verwenden:

SELECT *

FROM Bestellungen

WHERE [Versanddatum] = #5/10/96#;

Sie können auch die DateValue-Funktion verwenden, die die unter Microsoft Windows eingestellten Ländereinstellungen erkennt. Verwenden Sie z. B. die folgenden Codezeilen für Deutschland:

SELECT *

FROM Bestellungen

WHERE [Versanddatum] = DateValue('05.10.96');

Und verwenden Sie diese Codezeilen für die USA:

SELECT *

FROM Bestellungen

WHERE [Versanddatum] = DateValue('05/10/96');

Anmerkung Hat die in der Kriterienzeichenfolge angegebene Spalte den Typ GUID, dann wird im Kriterienausdruck eine etwas andere Syntax verwendet:

WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

Die verschachtelten geschweiften Klammern sowie die Bindestriche müssen wie hier gezeigt angegeben werden.

Siehe auch
Prädikate ALL DISTINCT, DISTINCTROW, TOP (Microsoft Jet SQL) | Operationen LEFT JOIN, RIGHT JOIN (Microsoft Jet SQL)
DELETE-Anweisung (Microsoft Jet SQL) | ORDER BY-Klausel (Microsoft Jet SQL)
FROM-Klausel (Microsoft Jet SQL) | SELECT-Anweisung (Microsoft Jet SQL)
GROUP BY-Klausel (Microsoft Jet SQL) | SELECT...INTO-Anweisung (Microsoft Jet SQL)
HAVING-Klausel (Microsoft Jet SQL) | SQL Aggregatfunktionen (SQL)
IN-Klausel (Microsoft Jet SQL) | UPDATE-Anweisung (Microsoft Jet SQL)
INNER JOIN-Operation (Microsoft Jet SQL) |

Beispiel

WHERE-Klausel (Beispiel)


WHERE-Klausel (Beispiel, DAO)

WHERE-Klausel (Beispiel)

Das folgenden Beispiel geht von der Existenz eines Felds Gehalt in einer Tabelle "Personal" aus. Beachten Sie, dass es dieses Feld in der Tabelle "Personal" der Nordwind-Datenbank nicht gibt.

Dieses Beispiel wählt die Felder Nachname und Vorname aller Datensätze aus, in denen das Feld "Nachname" den Wert "King" hat.

Dieses Beispiel ruft die Prozedur EnumFields auf, die Sie im Beispiel zur SELECT-Anweisung finden.

Sub WhereX()

    Dim dbs As Database, rst As Recordset

    ' Pfad für "Nordwind" auf Ihrem Computer

    ' in dieser Zeile bearbeiten.

    Set dbs = OpenDatabase("Nordwind.mdb")

    ' Auswählen von Datensätzen aus der Tabelle "Personal", in denen der

    ' Nachname den Wert "King" hat.

    Set rst = dbs.OpenRecordset("SELECT Nachname, " _

        & "Vorname FROM Personal " _

        & "WHERE Nachname = 'King';")

    ' Recordset-Objekt auffüllen.

    rst.MoveLast

    ' EnumFields aufrufen, um den Inhalt des Recordset-

    ' Objekts auszugeben.

    EnumFields rst, 12

    dbs.Close

End Sub