Datensatz mit Datumsvergleich auslesen

In einer Datenbank habe ich eine Tabelle „tblMWST“ (Schweiz).

Darin sind zwei Datensätze, einer mit 8% ab 1.1.2011, einen mit 7.7% ab 1.1.2018. Wenn nun eine Offerte erstellt wird, die ab 2018 gültig ist, muss der Wert ab 1.1.2018 ausgelesen werden, wenn eine Offerte / Rechnung im laufenden Jahr 2017, dann muss der Wert ab 1.1.2011 ausgelesen werden.

Mit DLookup funktioniert es nicht korrekt, ebenso funktioniert die SQL-Abfrage mit >= und < Datum resp. der Between-Klausel.

Wer hat einen Lösungsansatz (mir fehlt zur Zeit die Logik :wink:

Schreib doch die genaue Abfrage, die angeblich nicht funktioniert, vielleicht liegt genau darin der Fehler.

Das SQL-Statement lautet:

SELECT * FROM tblMWST WHERE #2017-01-01#>= MWST_DatAb AND #2017-01-01#< MWST_DatAb ORDER BY MWST_DatAb DESC

Der DLookup:

datMWST_DatAb = DLookup(„MWST_DatAb“, „tblMWST“, Format(Form_frmAnlaesse.ADatumVon, „#yyyy-mm-dd#“) & " >= MWST_DatAb")

ADatumVon = 1.1.2018 (oder später).
Beide geben immer den ersten Datensatz zurück (DatAb = 1.1.2011) anstatt den zweiten RS (DatAb = 1.1.2018).

Danke für die Hilfe. Henri.

Hallo,

In der SQL Abfrage:

  1. man sollte auch die Variable mit dem Datum in # einschließen.
  2. ist der Inhalt der Variable auch passend formatiert, und nicht im Format Monat-Tag-Jahr ?
  3. da stimmte was mit der Logik nicht, kleiner gleich und gleichzeitig größer gleiches Datum…

Tschau

Peter

DLookup kenne ich nicht, weil ich nicht so viel mit Access gemacht habe, mit SQL aber schon. Aber wie Peter schon schrieb:

und da hat er auf jeden Fall Recht. Wie ist die Tabelle aufgebaut, welche Spalten hat sie? Du musst irgendwie die beiden MWSt-Sätze hinterlegt haben, und zwar irgendwas mit Ab2011 und Ab2017, und wenn das Datum der Offerte (wo ist das gespeichert?) < 1.1.2018 muss der MWSt-Satz Ab2011, sonst Ab2017 ausgewählt werden.

Du müsstest dich dabei der Wenn-Funktion bedienen: https://support.office.com/de-de/article/Wenn-Funktion-32436ecf-c629-48a3-9900-647539c764e3

Hallo,

SELECT Top 1  MwSt_Wert  FROM tblMWST WHERE MWST_DatAb < Date()  ORDER BY MWST_DatAb DESC

Gruß
DF6GL,Franz