Clever-Excel-Forum

Normale Version: Fehler in SQL Anweisung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

sieht jemand in diesem String den oder die Fehler?

MySQL = "Select [Nr],[Datum],[ID],[Name],[Pin],[Betrag],[Mitarbeiter],[Entwertet],[Land]From [Daten$] Where " & _
        "[Datum] Between '" & Chr(37) & DatumVon & Chr(37) And Chr(37) & DatumBis & Chr(37) & "' " & _
        "And [Name] Like' " & suchName1 & " '"

mfg Juergen
Hallo,

du solltest die CHR(37) weg lassen und einfach ein # = CHR(35) schreiben.


Code:
sql = "SELECT * FROM [Table$] WHERE [Date] BETWEEN #" & DateMin & "# AND #" & DateMax & "#
Dann musst du noch darauf achten, dass deine Datumsformate ganz genau stimmen ...

Außerdem fehlt ein Leerzeichen vor 'FROM' ... sollte aber nur ein Tippfehler sein.
Hallöchen,

Du musst auch auf's korrekte Setzen der Hochkommas achten.
hier z.B.
"[Datum] Between '" & Chr(37) & DatumVon & Chr(37) And Chr(37) & DatumBis & Chr(37) & "' "
fängst Du nach between damit an und setzt es erst am Ende der Zeile zurück. Damit hast Du z.B. auch Dein And darin eingeschlossen ...
Hallöchen,

mal noch zwei Hinweise.
Wie z.B. Hochkommas gesetzt sind oder Variablen wie erwartet gefüllt, kannst Du übrigens ganz gut kontrollieren wenn Du die Strings mit

Debug.Print MySQL

im Direktfenster ausgibst.


Je nachdem, was Du für eine Datenquelle nutzt, kannst Du auch Tools wie den SQLDeveloper von Oracle oder Toad von Dell verwenden. Da kannst Du gleich sehen, was Deine Abfrage ausgibt und bekommst ggf. auch eine Fehlerstelle etwas genauer angezeigt, z.B. die Position in Deinem Abfragestring wo etwas nicht passen könnte. Ich bevorzuge übrigens den SQLDeveloper, der ist frei. Von Toad gibt's die aktuellen Versionen wohl nur noch als 30 Tage Trial. AM Besten mal googeln und schauen, was stimmt und passt Smile
Hallo Sabina
leider keinen Erfolg damit



[
Bild bitte so als Datei hochladen: Klick mich!
wird leider nichts gefunden
lasse ich den Code ohne Between laufen, also nur mit einem Datum , dann funktioniert der String mit den % Zeichen also chr37




mfg. Juergen
Hallo schauan,

ich lasse es mir seither über eine MsgBox anzeigen 





[
Bild bitte so als Datei hochladen: Klick mich!
]
also für mich sieht der String gut aus , aber leider kein Erfolg damit.
ich werde mich natürlich mal nach einem entsprechenden Tool umschauen.

mfg. Juergen
Hallöchen,

# und % haben eigentlich bei einer Datumsangabe nix zu suchen. Ist denn Dein Feld mit dem Datum auch vom entsprechenden Typ oder ist es ein String?

Eine Datumsabfrage mit between hab ich z.B. so bei mir. Ich habe da mehrere Daten in einer Listbox zur Auswahl. Diese muss ich in der Abfrage entsprechend wandeln

'von:
datum(1) = "to_date ('" & Format(UserForm1.ListBox1.List(0, 1) - 5, "dd.mm.yyyy") & "', 'dd.mm.yyyy')"
'bis:
datum(2) = "to_date ('" & Format(UserForm1.ListBox2.List(0, 1) - 5, "dd.mm.yyyy") & "', 'dd.mm.yyyy')"
...
sql_string = sql_string & " AND (Tabelle.Feld between " & datum(1) & " AND " & datum(2) & ") "


Ich hab da auch sicherheitshalber auch noch Klammern drum herum Smile Die Angabe der Tabelle hab ich bei mir, weil ich in der kompletten Abfrage auf mehrere zugreife.
Hallo Juergen,

zur Datumsformatierung:
Welche Datenbank wird abgefragt? SQL Server, MySQL, Oracle, ...

Like:
Da fehlen noch die Wildcards im Suchstring und dieser enthält auch noch jeweils ein Leerzeichen am Anfang und Ende.


Gruß Carsten