Access Datenbank Zugriff - Abfrage nach Datum-

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Edwardschn.

    Access Datenbank Zugriff - Abfrage nach Datum-

    Hi,

    habe ein Zugriffsscript in VB .NET welches mir auf eine DB von Access zugreift. Funktioniert alles wunderbar.
    Wenn ich eine Normale abfrage mache, funktioniert dies auch wunderbar z.B.

    SQL-Abfrage

    1. sql = "SELECT * FROM tblRohdaten " & _
    2. "ORDER BY Zeitpunkt ASC;"


    wenn ich jetzt aber nur Daten haben will, die jünger sind alls ein vorgegebenes Datum

    VB.NET-Quellcode

    1. Public Sub LeseAlleRohdaten(ByVal DBName As String, ByRef rohdaten() As Double, ByRef Zeitpunkt As String, ByRef zeit_von As DateTime)
    2. Dim DBConn As OleDbConnection
    3. Dim Daten As New DataTable
    4. Dim sql As String
    5. Dim Spalten As Byte
    6. Dim Zeilen As UInt32
    7. Dim i As Byte
    8. ' "WHERE Zeitpunkt >= " & zeit_von & _
    9. DBConn = Datenbank_oeffnen(DBName)
    10. sql = "SELECT * FROM tblRohdaten " & _
    11. "WHERE Zeitpunkt >= " & zeit_von & _
    12. " ORDER BY Zeitpunkt ASC;"
    13. Dim DBCmd As New OleDbCommand(sql, DBConn)
    14. Dim result As OleDbDataReader = DBCmd.ExecuteReader()
    15. Daten.Load(result)
    16. Zeilen = Daten.Rows.Count()
    17. Spalten = Daten.Columns.Count
    18. ReDim rohdaten(Spalten - 2)
    19. For j As UInt32 = 0 To Zeilen - 1
    20. Zeitpunkt = CStr(Daten.Rows(j)(0))
    21. frmMain.timestamp_ende_db = Convert.ToDateTime(Zeitpunkt)
    22. For i = 1 To Spalten - 1
    23. rohdaten(i - 1) = Daten.Rows(j)(i)
    24. Next i
    25. frmMain.pointpairlisten_fuellen()
    26. Next j
    27. result.Close()
    28. result = Nothing
    29. Daten = Nothing
    30. Datenbank_schliessen(DBConn)
    31. End Sub


    Bring er mir folgenden Fehler:
    Syntaxfehler in Datum in Abfrageausdruck 'Zeitpunkt >= 02.07.2013 13:42:40'.

    die Spalte Zeitpunkt ist in Access hinterlegt als Date, zeit_von ist eine DateTime


    Edit by ErfinderDesRades: (Thema verschoben) Bitte richtiges UnterForum wählen!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Ist immer dasselbe: DbParameter verwenden

    Ja, man kann Queries auch mit String-Gefrickel zurechtwursteln, aber dabei gibts ca. 10 Fußangeln (ca 5 bei Zeit-Daten), die man dabei sukkzessive durch auf Nase fallen durchdekliniert, und am Ende isses immer noch nicht gegen Sql-Injection-Angriffe sicher.


    Ui! ich seh grad, du proggst Strict Off - das nix gutt.
    Option Strict On!

    hmm - bei so vielen grundlegenden Mängeln - kannichdich zu einem ordentlichen Datenbänkerei-Einstieg nochmal von vorn überreden?

    error fehlender operator abfrageausdruck Syntaxfehler

    für den Fall, dass Du dich mit Paramtern erst mal nicht aufhalten willst.
    strSQL = "SELECT * FROM tblRohdaten " & _
    "WHERE Zeitpunkt >= " & Format(zeit_von, "\#dd.mm.yy\#")

    kuck dir aber vor allem diesen Teil an,
    \#dd.mm.yy\#"
    das passt auf meiner maschine, auf deiner vielleicht nicht, hängt ab von Ländereinstellung, diese Zeichen "#" bei Access immer.