Beliebige Verweise / Handbücher zu SQL in EXCEL mit Microsoft OLE DB Provider für Jet 4.0?

8

Gibt es Referenzen / Handbücher zur SQL-Syntax in EXCEL , die mit Microsoft OLE DB Provider für Jet 4.0 verbunden sind?

Zum Beispiel, wie schreibe ich Konstanten vom Typ Datum?

Welche Schlüsselwörter / Funktionen / Klauseln sind verfügbar?

    
deerchao 19.01.2011, 08:29
quelle

2 Antworten

20

Wenn Sie Excel als Jet 4.0-Datenquelle verwenden, ist die beste Referenz, die ich kenne:

Verwenden von ADO mit Excel-Daten aus Visual Basic oder VBA .

Besonders wichtig ist, wie der gesamte Datentyp einer vorhandenen Spalte bestimmt wird, wenn sie gemischte Datentypen .

Was den Microsoft OLE DB-Provider für Jet 4.0 betrifft, ist der relevanteste Artikel dieser:

ADO-Provider-Eigenschaften und -Einstellungen: Microsoft Jet 4.0-Provider-Eigenschaften

Das heißt, das Excel-spezifische Detail wird in dem früheren Artikel besser behandelt.

Eine wichtige Frage, die Sie bei der Verwendung von Excel und SQL beachten sollten:

Fehler: Speicherverlust tritt auf, wenn Sie ein offenes Excel-Arbeitsblatt mithilfe von ActiveX Data Objects abfragen (ADO)

  

Welche Schlüsselwörter / Funktionen / Klauseln sind?   verfügbar?

Was die Verwendung von Jet 4.0 SQL angeht, ist dieser Artikel der beste, den ich jemals gefunden habe:

SQL-Intermediate Microsoft Jet 4.0

Theoretisch sollte der SQL-Abschnitt der Access-Hilfe relevant sein ist von einer besonders niedrigen Qualität und Jet 4.0 leidet speziell unter schlechter Abdeckung.

Auch hier wird nicht alles direkt in Excel funktionieren. Obwohl Sie zum Beispiel CREATE TABLE SQL DDL verwenden können, um ein neues Arbeitsblatt und eine neue Arbeitsmappe zu erstellen, können Sie keine NOT NULL fähige Spalte erstellen, da dies physikalisch nicht möglich ist. Außerdem sind die Datentypen von Excel weniger granular, z. Die meisten numerischen Typen werden auf DOUBLE FLOAT abgebildet.

Was Ausdrücke betrifft, die in SQL verwendet werden können, verwendet der Jet 4.0-Ausdrucksdienst irgendwie die VBA-Ausdrucksdienste. Grob gesagt kann Jet jede Funktion von VBA 5.0 (nicht die neueste Version, die VBA 6.0 ist) verwenden, die keine Methode ist, die Werte invalidiert, und return gibt nur einen einzelnen Wert von einfachen, intrinsischen Datentypen zurück (keine Arrays, keine Objekte, etc ). Ich denke, ich habe Recht, wenn ich sage, dass Microsoft niemals explizit eine endgültige Liste der VBA-Funktionen veröffentlicht hat, die von Jet 4.0 unterstützt werden. Ich glaube jedoch, dass eine Liste in dem folgenden Artikel genau mit der Liste der VBA-Funktionen übereinstimmt, die in Jet 4.0 verwendbar sind:

Konfigurieren von Jet 4.0, um die Ausführung unsicherer Funktionen in Access 2003 zu verhindern

(Die Liste befindet sich in einer Tabelle unter dem Unterpunkt "Verwenden von Sandbox-Modus-Operationen mit Jet 4.0 Service Pack 3 und höher".)

Beachten Sie, dass sich einige Funktionen in Jet 4.0 anders als in VBA verhalten. Von meinem Kopf her kann ich an zwei denken. IIF() kann in Jet 4.0 abgekürzt werden (undokumentiert, AFAIK): In VBA werden sowohl TRUE als auch FALSE Bedingungen ausgewertet, in Jet 4.0 wird nur die übereinstimmende Bedingung ausgewertet. Die Funktion CDEC() (in DECIMAL umgewandelt) ist in Jet 4.0 gebrochen .

  

Wie schreibe ich Konstanten vom Typ date?   Ich meine, der Ausdruck   2011.01.20 (dieser konstante Wert) in SQL, zum Beispiel, verwende ich   '2011-01-20', oder # 2011-01-20 #, oder   etwas anderes?

Ich weiß das als 'literaler Wert'.

Dies ist das gleiche wie VBA, also #m/d/yyyy# , also wäre das heutige Datum #1/20/2011# . Allerdings bevorzuge ich ISO 8601 Datumsformat und einfache Anführungszeichen (für Portabilität) und immer das Zeitfeld (weil Jet 4.0 hat nur einen temporären Datentyp, nämlich DATETIME . Um sicherzustellen, dass regionale Einstellungen berücksichtigt werden, verwenden Sie die Funktion CDATE() für die Funktion DATETIME Das heutige Datum wäre CDATE('2011-01-20 00:00:00') .

[Ursprünglich dachte das OP gemeint: "Wie erstelle ich eine Spalte vom Typ DATE ?"]

Sie können CREATE TABLE DDL z.

%Vor%

Beachten Sie, dass, während Jet 4.0 den Datentyp DATETIME berücksichtigt, keine solche Einschränkung vorhanden ist, wenn die Arbeitsmappe in Excel bearbeitet wird: Wenn die Tabelle Range erweitert und nicht-temporale Daten hinzugefügt werden, dann wird der Datentyp ' gesehen 'von Jet 4.0 könnte sich als Ergebnis ändern.

onedaywhen 19.01.2011, 11:31
quelle
6
  

Welche Schlüsselwörter / Funktionen / Klauseln sind verfügbar?

In Bezug auf die Liste der Funktionen habe ich die folgende Namensliste in der Datei MSMDCB80.DLL gefunden:

YEAR, WEEKDAY, VarType, Val, UCase$, UCase, TypeName, TRIM$, TRIM, TIMEVALUE, TimeSerial, Timer, TIME$, TIME, TAN, SYD, Switch, String$, String, StrConv, StrComp, Str$, Str, Sqr, Space$, Space, SLN, SIN, Sgn, SECOND, RTrim$, RTrim,Round, Rnd, RIGHTB$, RIGHTB, RIGHT$, RIGHT, RGB, RATE, QBColor, PV, PPMT, PMT, Partition, Oct$, Oct, NPV, NPER, NOW, MONTH, MIRR, MINUTE, MIDB$, MIDB, MID$, MID, LTrim$, LTrim, LOG, LENB, LEN, LEFTB$, LEFTB, LEFT$, LEFT, LCase$, LCase, IsObject, IsNumeric, IsNull, ISERROR, IsEmpty, IsDate, IRR, IPMT, INT, InStr, IMEStatus, IIF, HOUR, Hex$, Hex, Fv, Format$, Format, Fix, EXP, Error$, Error, DDB, Day, DATEVALUE, DATESERIAL, DatePart, DateDiff, DATEADD, DATE$, Date, CVErr, CvDate, CVAR, CSTR, CSNG, COS, CLNG, CINT, CHRW$, CHRW, CHRB$, CHRB, CHR$, CHR, Choose, CDBL, CDATE, CCUR, CBYTE, CBOOL, ATN, ASCW, ASCB, ASC, Array, ABS

Ihre Argumente und Beschreibung finden Sie hier

Jede Funktion arbeitet in meinen SQL-Abfragen, also denke ich, das ist eine umfassende Liste von 125 Funktionen.

    
darkForester 13.05.2014 10:20
quelle

Tags und Links