2016-11-28 5 views
0

Ich möchte einen Bericht erstellen, der Daten für die letzten 14 Arbeitstage zusammenfasst. Dies bedeutet, dass der Bericht Samstage und Sonntage (und möglicherweise Feiertage) ausschließen muss.Zugriff 2016 Bericht fehlende Felder mit Daten zwischen Daten

Ich arbeite immer noch an, wie man das oben genannte tut. Ich glaube, es wird eine VBA-Lösung sein. Aber jetzt bin ich auf ein anderes Problem gestoßen, das ich nicht zu lösen weiß.

Meine Tabelle enthält Felder für ein Produkt, eine Menge und ein Datum, zu dem der Eintrag gemacht wurde (gespeichert als "MM/TT/JJJJ hh: nn").

Wenn ich Abfrage meinem Tisch für Einträge für die letzten 2 Wochen habe ich den folgenden Ausdruck in einer Abfrage verwenden:

Between DateAdd("d",1,Now()) And DateAdd("d",-14,Now()) 

Wenn das Datum innerhalb der letzten 2 Wochen fällt, und die Zeit auf eine bestimmte Transaktion ist Mitternacht dh 00:00, gibt die Abfrage das Produkt und die Menge zurück. Wenn die Zeit nicht Mitternacht ist, gibt die Abfrage das Produkt zurück, aber das Mengenfeld ist leer. Es spielt keine Rolle, ob ich date() oder now() verwende. Dabei spielt es keine Rolle, ob ich ein aktuelles Datum verwenden wie:

>=#11/24/2016# 

Also, die vollständige Abfrage ist:

TRANSFORM Sum(tblWarehouseTransfer.Qty) AS SumOfQty 
SELECT tblWarehouseTransfer.ProductID 
FROM tblWarehouseTransfer 
WHERE (((tblWarehouseTransfer.DateMoved) Between DateAdd("d",1,Now()) And DateAdd("d",-14,Now()))) 
GROUP BY tblWarehouseTransfer.ProductID 
ORDER BY tblWarehouseTransfer.ProductID 
PIVOT (Date())-[datemoved]+1 In (1,2,3,4,5,6,7,8,9,10,11,12,13,14); 

Wie kann ich das Produkt und Menge bekommen zu zeigen, wenn die Tabellenfeldattribute enthalten "hh: nn" und die Zeit ist anders als 00:00? Ich brauche die Abfrage dynamisch, also muss ich date() oder now() nicht ein bestimmtes Datum verwenden.

Antwort

0

Ich habe eine Lösung für mein Problem gefunden. Ich habe das DateMoved-Feld in 2 aufgeteilt, indem ich ein neues Feld in der Tabelle erstellt habe, das nur die Stunden und Minuten enthält, also "Short Time". Durch Eingabe von Daten in das 'DateMoved'-Feld als DateValue (Tag()), d. H. "Short Date", wird die Zeit abgeschnitten. Jetzt erscheinen die Produkt- und Mengenfelder im Bericht und die Abfrage bleibt dynamisch. Die SQL-Abfrage hat sich nicht geändert, nur die Art und Weise, in der das Datum im DateMoved-Feld gespeichert wird.