Поиск / ранжирование следующих 3 полей после сегодняшней даты

#ms-access #expression

#ms-access #выражение

Вопрос:

В части моей формы базы данных, которую я создал, будет указано самое новое добавленное событие, а также следующие предстоящие 3 события, которые мы проводим. Однако я не могу понять, как заставить выражение dlookup возвращать правильные значения в поле формы.

Я использую следующее выражение для возврата последнего добавленного события:

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

Что отлично работает для этого поля, переходя к предстоящим событиям, я искал выражение, в котором перечислены следующие 3 события

Я использую приведенное ниже, чтобы перечислить следующее событие

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

Это снова работает нормально, однако проблема возникает при попытке перечислить события # 2 и # 3. Мне было интересно, возможно ли использовать выражение dlookup / переписать выражение, чтобы перечислить следующие 2 предстоящих события.

Я также создал новый запрос для перечисления всех событий после now () и думал использовать DCount и ссылаться на это вместо этого с помощью мода, однако я не могу найти правильные критерии

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

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

Это всегда будет возвращать #Name или #Error в зависимости от того, как я играю с кодированием. И я потерял свой большой список выражений.

Ответ №1:

В вашем (секретном) запросе вставьте инструкцию TOP 3, чтобы выбрать только три верхние записи, например:

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

Комментарии:

1. Фантастика, это сузило топ-3 проще, чем вытаскивать все события, что позволило мне создать подчиненную форму для отображения этого! Идеальный