Проблема, безусловно, не из-за синтаксической ошибки с DateAdd
. В этом примере окна Immediate показано, что ваш синтаксис DateAdd
действителен.
? DateAdd("yyyy",10,Date())
2/18/2024
И он будет работать одинаково в коде VBA или в запросе.
Опасайтесь, что поле доступа может иметь как имя, так и подпись Недвижимость.

Если поле имеет заголовок, назначенный, что подпись используется вместо имени поля во многих ситуациях. Одна из таких ситуаций заключается в том, что вы открываете таблицу непосредственно в представлении Datasheet.
Так что в вашей ситуации таблица может содержать поле, подпись которого составляет «OrderDate», но фактическое название поля - это что-то еще. И в запросе вы должны использовать это имя, потому что Access не будет распознавать заголовок, предположим, что он должен быть параметром, и ожидайте, что вы укажете значение для параметра.
Проверьте дизайн таблицы, чтобы убедиться, что вы используете фактическое имя поля в запросе.
Вы можете избежать этой проблемы, построив свой запрос в конструкторе запросов Access. Запустите его как запрос SELECT
и выберите из доступных имен полей. После того, как вы будете правильно работать как SELECT
, вы можете конвертировать его в UPDATE
, который вам действительно нужен.
Доступ предлагает удобные функции ручного удержания. Время от времени они получают его и становятся раздражающими. Но это случай, когда полезные «удобства» доступа могут быть действительно полезными. :-)
Оказывается, у меня есть экземпляр Northwind from Access 2007. По крайней мере, в моей копии это поле называется «Дата заказа». Так что подпись не была виновницей. Просто скопируйте имя поля, чтобы Access распознал его как «одну вещь» вместо двух.
UPDATE Orders
SET [Order Date] = DateAdd("yyyy",10,[Order Date]);
Обратите внимание, что это еще один пример проблемы, которую может помочь разработчик запросов.
Вы пробовали 'UPDATE Orders set OrderDate = DateAdd (" yyyy ", 10, [OrderDate])' ... – bhs
Спасибо @bhs. Я просто попробовал это, но все равно получаю ту же ошибку. – Phoenix14830
Синтаксис подходит для того, что вы опубликовали, есть ли еще ваш запрос, который вы еще не опубликовали? – GarethD