2015-09-01 28 views
1

我有一個倉庫數據庫,該數據庫使用「ShipRefs」(標記爲表單上的貨物)字段將物料與特定貨件相關聯。我現在正在創建發票表單,以便爲每位客戶每月爲該客戶生成帳單。我可以通過組合框選擇基於客戶的貨件,但是我無法根據它們是否爲當月結算來過濾這些貨件。 enter image description here確定是否爲該月發貨

確定貨物是否在當月結算並僅顯示未在組合框中結算的貨物的最佳方法是什麼? (請注意在「最後Billdate」字段在這個失敗的嘗試) 數據:

enter image description here

查詢貨物組合框行來源:

SELECT DISTINCT ItemList.ShipRef, ItemList.CRef, InvoiceData.[Last Billdate] 
FROM ItemList AS ItemList_1, ItemList INNER JOIN InvoiceData ON ItemList.ShipRef = InvoiceData.Shipment 
WHERE (((ItemList.CRef)=[Forms]![InvoiceData]![Customer]) AND ((InvoiceData.[Last Billdate])>=Date()-30)); 
+0

的形式源是InvoiceData表。添加了一張照片 – Rynoc

+0

,並且我在確定當前記錄是否已被記帳時唯一的嘗試是「最後賬單日期」字段,其中我試圖在查詢條件中使用「DateDiff」函數。我會將該查詢添加到OP – Rynoc

+0

是的,我只需要不屬於當前月份的記錄,並且只記錄發票日期爲空的記錄。 – Rynoc

回答

1

從你的迴應...

我只想要不屬於當前月份的記錄和 是隻記錄w這裏的發票日期爲空

我認爲DateSerial()應該在這裏用來確定目標日期。下面是一個立即窗口例如:

? DateSerial(Year(Date()), Month(Date()), 1) 
9/1/2015 

? DateSerial(Year(Date()), Month(Date()) + 1, 1) 
10/1/2015 

這裏是使用那些DateSerial表達式和也將結果集限制到發票日期爲NULL的那些行的查詢:

SELECT id.* 
FROM InvoiceData AS id 
WHERE 
    id.[Invoice Date] Is Null 
    And 
     (
       id.[Last BillDate] < DateSerial(Year(Date()), Month(Date()), 1) 
      Or id.[Last BillDate] >= DateSerial(Year(Date()), Month(Date()) + 1, 1) 
     );