MS Access использует DATE () в вычисляемом поле - PullRequest
1 голос
/ 08 апреля 2020

Я использую Microsoft Access 2016. Я пытаюсь выяснить, сколько лет существует с текущего года до будущего года. У меня есть столбец, который является end_date. Я пытаюсь создать вычисляемое поле, которое по существу YEAR (end_date) - YEAR (current_year). Я пытался использовать YEAR (DATE ()), но DATE () не разрешается использовать в вычисляемом поле, очевидно.

Нет ли способа сделать такой расчет?

Ответы [ 3 ]

2 голосов
/ 08 апреля 2020

Неа. Вычисляемые поля кэшируются и сохраняются c, поэтому НИКОГДА не разрешается содержать ЛЮБУЮ информацию, которая со временем изменится из-за настроек системы или чего-либо еще, что не введено напрямую в эту строку.

Однако вы В любом случае не следует использовать вычисляемые поля. См. http://allenbrowne.com/casu-14.html среди многих публикаций, пропагандирующих не использование вычисляемых полей.

Вместо этого используйте запросы для выполнения вычислений. Таким образом, у вас не будет никаких проблем с использованием текущей даты, и вам не придется иметь дело с возможными ошибками и проблемами переносимости, с которыми приходят вычисляемые поля.

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

В форме вы можете использовать это выражение в качестве источника управления для текстового поля:

=DateDiff("yyyy",Date(),[EndDate])

Однако это возвращает разницу в календарных годах. Чтобы найти число полных лет, используйте функцию типа AgeSimple и это выражение:

=AgeSimple([EndDate])
0 голосов
/ 08 апреля 2020

Я изменил свое мышление, чтобы вычислить это в форме. Не кажется хорошей практикой иметь поле в БД, которое меняется каждый день.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...