Ich habe eine Abfrage, die ein fortlaufendes Teilformular mit Datensätzen aus SQL Server füllt. Wenn ich meinen Code wie folgt habe, füllt er alles normal auf.MS Access Daten schalten mich ein
Me.RecordSource = "SELECT viewTask.* FROM viewTask WHERE StartDate <= 42720 and EndDate >= 42720"
Aber wenn ich die oder Bedingung am Ende (siehe unten) hinzufügen, werden meine Daten plötzlich um 2 versetzt! (2 Tage vor der Abfrage oben).
Me.RecordSource = "SELECT viewTask.* FROM viewTask WHERE StartDate <= 42720 and EndDate >= 42720 or ID = 16801;"
Ich weiß, MS Access eine seltsame Sache hat, wo es durch 2 von SQL Server unterscheidet, weil er 1900 als Schaltjahr zählt und startet bei 1 statt 0 Aber warum ist das passiert an dieser Stelle? Das macht mich traurig.
edit: Keine der Antworten hat mir bisher gesagt, WARUM das Hinzufügen einer ID =
Bedingung ändert plötzlich die Datumsinterpretation von SQL zu Access, aber eine Antwort löst das Problem, so habe ich es als die akzeptierte Antwort markiert.
ich Klammern glauben sollte nicht Ergebnisse beeinflussen, weil 'und' immer vor' or' ausgeführt, aber wie auch immer, darüber einig, dass explizite Ausführungssequenz besser wäre –
Sie haben Recht . _Between-And_ wird zuerst ausgewertet, dann die beiden Seiten von _Or_. – Gustav
Also muss ich meine SQL-Ansicht das Datum in eine Datumswert-Zeichenfolge konvertieren, die ich in meiner VBA verwende? – Mike