【发布时间】:2017-01-28 00:00:32
【问题描述】:
在 Access 中,我有一个 MachinesList 和 ActionsList。一台机器每年可以多次设置为活动和非活动。每次状态变化都有自己的 ActionID 和 ActionDate。
在 VBA 中,我添加了一些代码来获取机器处于活动状态的第一个和最后一个日期。由于这种情况可能不止一次发生,因此我现在可以在每次机器处于活动状态时创建一个包含开始日期和结束日期的列表。
两个问题:
1) 这可以通过查询而不是 VBA 来完成吗?
2) 是否可以在 Access 的某种时间线中显示这些日期?
这是我必须创建的日期列表:
SELECT DISTINCT Requests.RequestNumber, Requests.MachineID, Actions.Assignee, Actions.Action, Actions.TRDate FROM SelectedIDs LEFT JOIN (Requests LEFT JOIN Actions ON Requests.RequestNumber = Actions.RequestNumber) ON SelectedIDs.MachineID = Requests.MachineID ORDER BY Requests.MachineID, Actions.TRDate;
我确实需要 RequestNumber 和受让人(在激活的情况下)以供进一步使用。由于激活和停用的 RequestNumber 不同,由于 GROUP BY 子句,我不能使用 MIN(date) 和 MAX(date) 功能。
VBA 中生成的列表有点像这样:
2325 ID1234 29-11-2016 16-3-2017
2323 ID1234 28-3-2017 27-4-2017
2203 ID9999 25-1-2017 27-2-2017
我希望在 Access 的某种时间线中看到此列表。
像这样:
身份证 | wk01 | wk02 | wk03 |等
88 | N | N |是 |是 |是 | N
99 | N |是 |是 | N | N |是的
但是任何时间线都可以。有人建议吗?
谢谢,卡琳
【问题讨论】:
-
“某种时间线”真的很有用,卡琳。你是设计师。
-
我想显示一年中的星期几。如果机器处于活动状态,则将周标记为红色。每台处于活动状态的机器对应一条线。更新了问题。谢谢。