我正在使用Microsoft Access 2013创建我的第一个“Web App”并将其发布到我公司的sharepoint门户。到目前为止,它的工作非常出色,但我似乎无法将我的大脑包围在任何其他数据库解决方案中非常简单的问题。
我有一个尝试进入客户家中工作的日期列表,我希望能够将列表过滤到我们实际工作的最后一天的日期。理论上这很容易,因为我可以查询工作日期等于最小日期的所有记录,如:
[Work Date] = (
SELECT MAX([Work Date])
FROM [Work Attempt]
WHERE [Work Date] < Today()
)
但是,Web应用程序似乎不支持其requery where子句中的子查询。即使使用数据宏似乎也不支持使用MAX等函数。
有没有办法让Web应用程序执行我想要它在这里做的事情?我可以通过
轻松获得“昨天”[Work Attempt].[Work Date] = DateAdd(Day, -1, Today())
在requery where子句中,但这对我没有帮助,因为我们不在周末工作,然后函数在星期一变得无用(同样在周五的“明天”)。
答案 0 :(得分:2)
我找到了一个可以接受的解决方案。
我创建了一个名为Previous Scheduled Day
的查询,该查询引用了我的Work Attempt
表,并在MAX
字段上使用了聚合函数Work Date
,第二个隐藏的Work Date
实例用于将数据限制为<Today()
。
然后我创建了一个数据宏Get Previous Work Day
,它将SetReturnVal
链接到Look Up A Record In
(引用Previous Work Day
查询而没有where子句)。
在我的操作栏的OnClick
项目中,我首先运行数据宏,将局部变量设置为LastWorkDay
。然后我使用
RequeryRecords
[Work Attempt].[Work Date]=[LastWorkDay]
作为我的where子句。
冲洗并重复“下一个工作日”。
以下是我的“Get Previous Work Day”数据宏的样子:
这是我的“OnClick”动作的样子: