【问题标题】:Dlookup/rank next 3 field's after today's date在今天的日期之后查找/排名下一个 3 字段
【发布时间】:2019-04-02 17:59:33
【问题描述】:

我创建的数据库表单的一部分将列出最新添加的活动以及接下来即将举办的 3 个活动。但是我无法弄清楚如何让 dlookup 表达式将正确的值返回到表单字段中。

我使用以下表达式返回最新添加的事件:

=DLookup("[Event Name]","[Events]","[Event Date] = DMax('[Event Date]','[Events]')")

这对于该领域非常有效,进入即将发生的事件,我正在寻找一个列出接下来 3 个事件的表达式

我使用下面列出下一个事件

=DLookUp("[Event Name]","[Events]","[Event Date] >= now()")

这又可以正常工作,但是在尝试列出事件 #2 和 #3 时会出现问题。我想知道是否可以使用 dlookup 表达式/重写表达式以列出接下来的 2 个即将发生的事件。

我还创建了一个new query 来列出 now() 之后的所有事件,并且正在考虑使用 DCount 并使用 mod 来引用它,但是我找不到正确的标准

=DCount("  [View - Upcoming Events]![Event Name] "," [View - Upcoming Events]","[Event Name] <= & [Event Name]") Mod 2

=DCount("  [View - Upcoming Events]![Event Name] "," [View - Upcoming Events] "," [Event Name] <= " & [Event Name]) Mod 2

这将始终返回#Name 或#Error,具体取决于我如何使用编码。而且我放错了我的一大串表达方式。

【问题讨论】:

    标签: ms-access expression


    【解决方案1】:

    在您的(秘密)查询中,插入 TOP 3 语句以仅选择 前三个记录,例如:

    Select TOP 3 [Event Name], [Event Date] 
    From [Events]
    Where [Event Date] > Date()
    Order By [Event Date] Asc
    

    【讨论】:

    • 太棒了,缩小前 3 名比拉出所有事件更容易,这让我可以创建一个子表单来显示它!完美
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2012-11-30
    • 1970-01-01
    相关资源
    最近更新 更多