Hallo,
ich möchte in einem Bericht alle Geräte anzeigen lassen, die bereits einmal Inventur hatten (also in Tabelle Inventur stehen), aber nicht im Zeitraum zwischen Andat und Endat.
Ich habe als RecordSource folgenden SQL-Code, der offensichtlich einen Fehler hat:
SQLstr = "SELECT Posten.Entfernen, Posten.Bezeichnung, Posten.Geraetegruppe, Posten.Standort "
SQLstr = SQLstr & "FROM Posten LEFT JOIN Inventur ON Posten.Barcode = Inventur.INVBarcode "
SQLstr = SQLstr & "WHERE (((Posten.Entfernen)=False) AND ((Posten.Barcode) Not In "
SQLstr = SQLstr & "(SELECT Posten.Barcode FROM QYPoMitInv WHERE Inventur.InvDatum Between " & Format(Andat, "\#yyyy-mm-dd\#")
SQLstr = SQLstr & " AND " & Format(Endat, "\#yyyy-mm-dd\#") & ")))"
Wenn ich den Bericht aufrufe, öffnet sich das Dialogfenster "Parameterwert eingeben", "Barcode:". Wenn ich dann irgendeinen Barcode eintippe, zeigt der Bericht nur das Gerät mit dem eingetippten Barcode an. Wiese fragt Access nach einem Barcode? Außerdem hätte Ich gerne eine Liste aller Geräte, die den Kriterien entsprechen.
QYPoMitInv ist nur eine Abfrage mit den Tabellen Posten und Inventur. Andat und Endat sind öffentliche Variablen vom Typ Date.
Vielen Dank im Voraus
Beate1953
Hallo,
1) offensichtlich gibt es "Barcode" nicht in Tabelle "Posten", bzw. in der Abfrage.
2) Deine Where-Conditions sind "falsch" herum...
WHERE (((Posten.Entfernen)=False) AND ((Posten.Barcode) In "
SQLstr = SQLstr & "(SELECT Posten.Barcode FROM QYPoMitInv WHERE Inventur.InvDatum Not Between " & Format(Andat, "\#yyyy-mm-dd\#")
Geht es nicht auch so:
SQLstr = "SELECT distinct Posten.Entfernen, Posten.Bezeichnung, Posten.Geraetegruppe, Posten.Standort "
SQLstr = SQLstr & "FROM Posten Inner JOIN Inventur ON Posten.Barcode = Inventur.INVBarcode "
SQLstr = SQLstr & "WHERE Posten.Entfernen=False AND "
" Inventur.InvDatum Between " & Format(Andat, "\#yyyy-mm-dd\#")
SQLstr = SQLstr & " AND " & Format(Endat, "\#yyyy-mm-dd\#")
Hallo,
das mit dem Barcode hat sich inzwischen geklärt. Ich hatte vergessen SELECT Posten.Barcode, ...zu schreiben.
Die Where-Conditions bei mir sind meines Erachtens schon richtig, denn ich will ja genau die Geräte, die im angegebenen Zeitraum keine Inventur hatten. Jedenfalls bekomme ich nun eine Liste, die zu stimmen scheint.
Vielen Dank
Beate1953