2015-09-08 41 views
0

非常感謝大家的幫助。我還是很新的訪問,並不知道從哪裏開始尋找解決方案。 我想要做的是自動在我的表中填充名爲「期間」的字段。我希望讓它使用「Activity_Date」來查看具有參考正確時間段的日期範圍的不同表格。基於哪個「期間」「Activity_Date」屬於哪一個將返回正確的「期間」。我嘗試過使用計算的數據類型和查詢,並且我感覺沒有比開始時更接近答案。根據範圍在字段中選擇一段時間

再次感謝您的時間。

回答

0

我會質疑爲什麼你需要填充表中的字段時間。 總之,我不會打擾。 它所處的時間段可以從同一條記錄中的活動日期字段獲取。

因此,您可以根據需要編寫選擇語句來計算MyTable中記錄的時間段。

SELECT TableWithPeriods.period, MyTable.activity_date 
    FROM MyTable 
      LEFT JOIN TableWithPeriods 
      ON MyTable.activity_date 
      BETWEEN TableWithPeriods.StartDate 
       AND TableWithPeriods.EndDate 

如果您需要訪問期間那麼很多有保持在MyTable的週期值在步驟與TableWithPeriods參數。

保持在一個步驟可能是尷尬的,但如果有人改變了一個日期的日期?

保持步驟可能意味着需要編寫一些SQL來更新所有MyTable行,這些行不會設置週期或當週期現在不同時。 VBA更新語句看起來有點像上面的SELECT。 或 您可以使用數據庫中的onchange宏來響應MyTable中添加或更新的數據(以及TableWithPeriods,如果用戶可以更改日期)。

無論如何,這是我的意見。我不會複製價值。

PS我不是100%地肯定我上面給的SQL語句,這可能工作雖然

SELECT TableWithPeriods.period, MyTable.activity_date 
    FROM MyTable 
      LEFT JOIN TableWithPeriods 
      ON (MyTable.activity_date >= TableWithPeriods.StartDate 
       AND MyTable.activity_date <= TableWithPeriods.EndDate) 
+0

感謝你的幫助,我不完全相信你的建議是什麼。我們運行了28天的時間段,並且在SQL中使用了對該時間段的引用。我所要做的就是保存在正確的時間內手動輸入的步驟。有沒有簡單的方法來做到這一點? – Queenerc

+0

我的觀點是沒有必要進入這個時期。只需輸入日期!您可以編寫VBA代碼(或SQL)來查找時間段並在日期旁邊的(未綁定)控件中將其顯示在窗體中,但是您不必將時間段存儲在表格中! (只能在期間表中存儲期間!) (您可以基於SQL查找期間,以便期限顯示在locekd的綁定控件中,因爲它取得了; s值從SQL底層查找表單 - 使用日期查找期間表中的期間 - 就像我上面寫的SELECT一樣)。 – HarveyFrench