tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
566
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    gander gander ist offline Mitglied Bronze
    Registriert seit
    Sep 2010
    Beiträge
    33
    Hi Leute,
    hab jetzt das problem das ich nicht nach einem Zeitraum suchen kann.
    Wenn ich normla nach einen bestimmten datum frag daann zeigt er mir ergebnisse an, aber wenn ich ihm sage "SELECT * FROM TABELLE WHERE datum BETWEEN '12.12.2009' AND '15.12.2009'" dann bring er mir die fehler meldung 'Datentypen im Kriterienausdruck unverträglich', genau so wenn ich das datum in rauten schreib also so: '#15.12.2009#'. Wenn ich die einfachen anführungszeichen ' weg lass dann kommt die fehlermeldung "Syntaxfehler in Zahl in Abfrageausdruck 'datum BETWEEN 12.12.2009 AND 15.12.200' wieso lässt er da die 9 am schluss von 2009 weg?
    wenn ich das datum im Format yyyyMMdd schreib also 20091215 dann bringt er keine fehlermeldung aber auch kein ergebnis, aber ich weiß das es einige ergebnisse gibt! Genau so bei yyyy-MM-dd und dd-MM-yyyy und bei MM-dd-yyyy auch. hab schon so ziemlich alles ausprobiert aber entweder es kommt ne fehlermeldung oder kein ergebnis....

    Hierm mal der vb code vll hab ich ja da einen fehler:

    Dim von As String
    Dim bis As String
    Dim vond As Date
    Dim bisd As Date
    von = tb1String.Substring(0, 10)
    bis = tb1String.Substring(11)
    vond = CDate(von)
    bisd = CDate(bis)

    SqlString = "SELECT * FROM Tabelle WHERE datum BETWEEN " & Format(vond, "yyyyMMdd") & " AND " & Format(bisd, "yyyyMMdd")
    oder so
    festerSqlString = stAcSelect & "WHERE bestell_datum BETWEEN '" & von & "' AND '" & bis & "'"


    man man hab glaub echt schon ales ausprobiert

    wäre echt froh wenn mir jemand helfen kann

    aso und tb1String sieht so aus : 12.12.2009-15.12.2009
    Geändert von gander (22.09.10 um 12:57 Uhr)
     

  2. #2
    ALemke ALemke ist offline Grünschnabel
    Registriert seit
    Sep 2003
    Beiträge
    2
    Hallo,
    ich weiß nicht wie Du den SqlString weiter verwendest, aber wenn Du den über ein SqlCommand absetzt, nutze doch die SqlParameter zur Übergabe der Werte. Dabei musst Du Dich nicht mehr um das Format kümmern da es ja mit übergeben wird.

    zum Beispiel:
    festerSqlString = stAcSelect & "WHERE bestell_datum BETWEEN @Begin AND @End"
    MySqlCommand(festerSqlString,Connectionstring)
    MySqlCommand.Parameters.Add( _
    "@Begin", SqlDbType.DateTime).Value = "12.12.2009"
    MySqlCommand.Parameters.Add( _
    "@End", SqlDbType.DateTime).Value = "15.12.2009"


    Suche mal nach "parameter sqlcommand" auf MSDN.

    Andre
     

  3. #3
    gander gander ist offline Mitglied Bronze
    Registriert seit
    Sep 2010
    Beiträge
    33
    he
    danke dir für deine antwort, hab jetzt bischen geschaut im internet nach dem stichwort "parameter sqlcommand" und wenn ich das jetztz richtig verstanden hab kann man das nicht für Access datenbanken benutzen oder hab ich das falsch verstanden? Achso ich seh grad das ich ja oben gar nicht angegeben hab welche DB ich nutze ups. Also ich arbeite bei diese Abfrage mit Access. Gibt es da auch eine möglichkeit das iwie so ähnlich zu machen?

    da wenn ich ja nur nach einemm bestimmten datum suche, er mir ein ergebnis liefert, hab ich es auch schon so versucht(auch wenn es eigentlich total umständlich ist) :
    festerSqlString = stAcSelect & "WHERE bestell_datum BETWEEN (SELECT bestell_datum FROM Tabelle WHERE bestell_datum LIKE '" & von & "') AND (SELECT bestell_datum FROM Tabelle WHERE bestell_datum LIKE '" & bis & "')"
    aber da bringt er mir die fehlermeldung "Höchstens ein Datensatz kann von dieser Unterabfrage zurückgegeben werden"
    Also über weitere Tipps wäre ich echt dankbar

    gruß
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Hab zwar keine Ahnung von .Net, dafür jedoch von MS Access.
    Versuch mal das Datumsformat #mm/dd/yyyy#
    Code sql:
    1
    2
    3
    
    SELECT *
    FROM myTable
    WHERE myDate BETWEEN #03/11/2010# AND #03/29/2010#

    Desweiteren hier noch ein kleines Tutorial wie man Access-SQL-Fehler in VB am besten findet. Ist zwar VB6/VBA, jedoch ist es dasselbe Prinzip: http://wiki.yaslaw.info/wikka/VbaAccessDebugQuery
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    gander gander ist offline Mitglied Bronze
    Registriert seit
    Sep 2010
    Beiträge
    33
    Hab das Format auch schon ausprobiert. Danke für den Link damit hab ich mich gestern schon ne ganze weile rumgeschlagen, aber anscheinend nicht genug. Ich hab den Fehler jetzt, aber weiß leider nicht, oder noch nciht, wie ich ihn behenben kann. Und zwar, dein Format funktioniert(hab es gestern wahrscheinlich nicht in access getestet sondern nur in VB), aber wenn ich folgenden code schreib, ändert der mir das format einfach wieder um?
    Code:
    von = tb1String.Substring(0, 10)
    bis = tb1String.Substring(11)
    vond = CDate(von) 'hat im debugging modus den wert "#09/15/2009#"
    bisd = CDate(bis) 'hat im debugging modus den wert "#09/20/2009#"

    also hat es hier ja eigentlich das richtige format!

    So, wenn ich jetzt aber den SQLString anschau der so aussieht:
    festerSqlString = stAcSelect & "WHERE bestell_datum BETWEEN #" & vond & "# AND #" & bisd & "#"
    hat der im debugging folgenden wert:
    SELECT * FROM Tabelle WHERE bestell_datum BETWEEN #15.09.2009# AND #20.09.2009#
    wieso ist hier auf einmal ein "." statt dem "/"
    wenn ich aber im festerSQLString im debugging auf das "vond" schau steht da "#09/15/2009#"

    Ich versteh das einfach nicht****?

    an was kann das liegen?
     

  6. #6
    gander gander ist offline Mitglied Bronze
    Registriert seit
    Sep 2010
    Beiträge
    33
    ok hat sich erledigt, ein kollege hat mir gesagt das er sich an den "/" stört.
    wahrscheinlich wandelt er das datum mautomatisch ins deutsche format um soald er ein datum sieht, deshalb übergebe ich das datum jetzt als string.
    hab es jetzt so gemacht:
    Dim von As String
    Dim bis As String
    Dim vond As Date
    Dim bisd As Date
    Dim vonf As String
    Dim bisf As String

    von = tb1String.Substring(0, 10)
    bis = tb1String.Substring(11)
    vond = CDate(von)
    bisd = CDate(bis)
    vonf = Format(vond, "#MM-dd-yyyy#").Replace("-", "/")
    bisf = Format(bisd, "#MM-dd-yyyy#").Replace("-", "/")

    festerSqlString = stAcSelect & "WHERE bestell_datum BETWEEN " & vonf & " AND " & bisf
     

Ähnliche Themen

  1. MySQL: Definierte Variable in SELECT Statement funktioniert nicht
    Von Lapachon im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 03.10.10, 08:52
  2. Select funktioniert nicht korrekt
    Von exiter28 im Forum .NET Datenverwaltung
    Antworten: 4
    Letzter Beitrag: 13.09.10, 09:42
  3. Antworten: 4
    Letzter Beitrag: 21.11.07, 09:27
  4. MySQL-Abfrage Select * funktioniert nicht
    Von janomerico im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 12.01.07, 20:14
  5. Select einer Zelle im Excel funktioniert nicht
    Von Entity im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 19.11.04, 15:37