1

我正在使用 Microsoft Access 2013 创建我的第一个“Web 应用程序”并将其发布到我公司的共享点门户。到目前为止,它工作得很好,但我似乎无法思考在任何其他数据库解决方案中本来会是一个非常简单的问题。

我有一个尝试进入客户家工作的日期列表,我希望能够将列表过滤到我们实际工作的最后一天的日期。理论上这很容易,因为我可以查询所有工作日期等于最大日期小于今天的记录,例如:

[Work Date] = (
    SELECT MAX([Work Date]) 
    FROM [Work Attempt] 
    WHERE [Work Date] < Today()
)

但是,Web 应用程序在其 requery where 子句中似乎不支持子查询。即使使用数据宏似乎也不支持使用像 MAX 这样的函数。

有没有办法让网络应用程序做我想让它在这里做的事情?我可以很容易地得到“昨天”

[Work Attempt].[Work Date] = DateAdd(Day, -1, Today())

在 requery where 子句中,但这对我没有帮助,因为我们周末不工作,然后该函数在星期一变得无用(同样适用于星期五的“明天”)。

4

1 回答 1

2

我找到了一个可以接受的解决方案。

我创建了一个名为的查询Previous Scheduled Day,它引用我的表并在字段上Work Attempt使用聚合函数,第二个隐藏实例用于将数据限制为.MAXWork DateWork 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子句。

冲洗并重复“下一个工作日”。

这是我的“获取上一个工作日”数据宏的样子: 获取上一个工作日

这是我的“OnClick”操作的样子: 点击

于 2013-07-09T19:28:19.497 回答