vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
SELECT: Fehler im Syntax - komme nicht weiter 
Autor: caramba
Datum: 19.01.14 15:11

Hallo zusammen,

ich komme beim nachstehenden SELECT immer auf einen Syntaxfehler und finde die Ursache leider nicht.
Mittels dem SELECT will ich alle Rows bekommen, deren Datum in D1DatumBis < einem gewählten Datum ist (z.B. 2014-01-19) oder deren Datum in D1DatumVon > grösser einem gewählten Datum (z.B. 2014-01-25) ist.

Ich komme immer auf einen Syntaxfehler. Ich arbeite mit MySQL.


Kann mir jemand weiterhelfen?

Danke
Rainer

sSQL = "SELECT D1ID, D1Herkunft, D1Nr, D1Ziel, D1DatumVon, D1ZeitVon," & _
  "D1DatumBis, D1ZeitBis, D2Art, D2Objekt, D2D1FK FROM tbldispo1 d1 INNER JOIN" & _
  "tbldispo2 d2 ON d1.D1ID = d2.D2D1FK WHERE d2.D2Art = 'B' And (D1DatumBis <" & _
  "'" & Format$(sDatumVon, "yyyy-mm-dd") & "' OR D1DatumVon > '" & Format$( _
  sDatumBis, "yyyy-mm-dd") & ")'"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SELECT: Fehler im Syntax - komme nicht weiter 
Autor: lanzarote
Datum: 20.01.14 14:39

Hallo Rainer,

mach mal in deinen Strings am Zeilenende immer noch ein Leerzeichen, sonst fehlt es beim Verketten mit der nächsten Zeile. Dies macht zumindest beim Join Probleme:
... D1ZeitVon, " & _
... INNER JOIN " & _
usw.
Gruß Dieter R.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SELECT: Fehler im Syntax - komme nicht weiter 
Autor: crosstravel
Datum: 20.01.14 16:33

Hallo,

ein zusätzliche Leerstelle bringt leider auch keine Abhilfe. Ich vermute, das Problem liegt
beim Datum. Könnte es vielleicht sein, dass die Angabe von 2 unterschiedlichen Feldern hier
nicht möglich ist (D1DatumVon und D1DatumBis) ?

Danke
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SELECT: Fehler im Syntax - komme nicht weiter 
Autor: lanzarote
Datum: 20.01.14 19:00

Hallo Rainer,

ist das Datumsformat denn richtig (yyyy-mm-dd)? Kenne mich mit mySQL nicht aus, arbeite mit MS SQL Server. Dort hängt es auch davon ab, welche Ländereinstellung dem Benutzer zugeordnet ist, unter dem die Abfrage läuft. Denn der Datumsstring muss ja entsprechend interpretiert werden.

Ich würde auch noch den Tabellen-Alias d1 bzw. d2 vor alle Feldnamen setzen.

Gruß Dieter R.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SELECT: Fehler im Syntax - komme nicht weiter 
Autor: JangoF
Datum: 21.01.14 01:24

Am Schluß das )' muß ein ') sein.

Für Datumsfelder sollte man auch eigentlich "#" anstatt "'" nehmen.

Direkt im Befehl Format, quasi so
sSQL = "SELECT D1ID, D1Herkunft, D1Nr, D1Ziel, D1DatumVon, D1ZeitVon," & _
  "D1DatumBis, D1ZeitBis, D2Art, D2Objekt, D2D1FK FROM tbldispo1 d1 INNER JOIN" _
  & _
  "tbldispo2 d2 ON d1.D1ID = d2.D2D1FK WHERE d2.D2Art = 'B' And (D1DatumBis < " _
  & _
   Format$(sDatumVon, "\#yyyy-mm-dd\#") & " OR D1DatumVon > " & Format$( _
  sDatumBis, "\#yyyy-mm-dd\#") & ")"


Beitrag wurde zuletzt am 21.01.14 um 01:26:14 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SELECT: Fehler im Syntax - komme nicht weiter 
Autor: crosstravel
Datum: 23.01.14 11:59

Hallo,

das Hash ist meiner meinung nach nur bei Access erforderliche; MySQL benötigt es nicht.

Gruss
rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SELECT: Fehler im Syntax - komme nicht weiter 
Autor: Franki
Datum: 23.01.14 23:42

Hallo Rainer,

richtig, # braucht man bei Access.

Um der Lösung des Problem näher zu kommen würde ich die SQL Abfrage mal auf das notwendige Minimum einschränken und direkt das DateTime Feld in der Tabelle ansprechen.

z.B.
Sql = "SELECT * FROM DeineTabelle WHERE DeinDatumsfeld < '2014-01-01' & "
Erst wenn das funktionierst gehst du zum OR über auf das zweite Feld mit festem Datum. Danach erst die Datumsangaben durch die Variablen ersetzen usw. usw.

So kann man das Problem schrittweise analysieren und dann den Code weiter ausbauen. Damit schließt man Fehlerquellen aus (oder findet sie) wenn die Abfrage dann komplexer wird. Bei solchen Sachen erstelle ich mir einfach eine Kleine Testdatenbank mit nur einer Tabelle und den notwendigen Feldern in denen dann Dummyeinträge stehen für die Tests.

Dieser Weg der Problemlösung geht meistens am schnellsten. Ich kenne mich mit MySQL in Verbindung mit VB auch nicht gut aus, aber so würde ich vorgehen.

Gruß
Frank







Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SELECT: Fehler im Syntax - komme nicht weiter 
Autor: JangoF
Datum: 24.01.14 09:25

Das Problem liegt einfach nur darin das am Schluss Klammer und Hochkomma in der Reihenfolge vertauscht wurden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel