Мне нужно определить пользовательскую рабочую неделю в MS Access - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь создать пользовательскую функцию в форме для определения номера недели.

Я создал таблицу, которая определяет номер недели.

Пример WeekNo, StartDay, Пример дня окончания: WeekNo 1 StartDay = 3/29/2020, день окончания 4/4/2020

У меня есть поле даты в моей форме, если я введу дата 29.03.2020 Я хотел бы, чтобы в поле моей недели был указан номер 1.

На моей форме в источнике строк я разработал запрос Dlookup

= DLookup ("[WeekNumber]", "tblWeekNumber", "[Startdate]> =" & frmSearchNew.dt_Date & "") & [EndDate] <= frmSearchNew.dtDate </p>

Когда я переключаюсь в режим просмотра, я получаю сообщение об ошибке, источник записи, указанный в этой форме, не существует. Таблица tblWeekNumber содержит поля ID, WeekNo, StartDay и EndDay.

Куда я иду не так? любая помощь приветствуется.

1 Ответ

0 голосов
/ 13 апреля 2020

Существует довольно много проблем с DLookup, которые вы собрали.

  1. Во-первых, поле, которое вы ищете, и поля, которые вы используете в качестве критериев, не соответствуют те, что в таблице - WeekNumber / WeekNo, StartDate / StartDay, EndDate / EndDay;
  2. Далее, логика c для поиска неверна. Вы пытаетесь найти номер недели с начальной датой, которая больше введенной даты, и конечной датой, которая меньше введенной даты. То, что вы должны искать, это дата начала до введенной даты и дата окончания после введенной даты.
  3. Наконец, даты немного забавны в Доступ. Вам нужно заключить их в «#», чтобы Access знал, что они являются датами, и вам также следует позаботиться об их устранении - 3/04/2020 может быть либо 3 апреля, либо 4 марта, в зависимости от вашей национальности.

Собрав все вместе, конечный источник управления должен выглядеть следующим образом:

=DLookUp("WeekNo","tblWeekNumber","StartDay<=#" & Format([dt_Date],"dd-mmm-yyyy") & "# AND EndDay>=#" & Format([dt_Date],"dd-mmm-yy") & "#")

С уважением,

...