Эта ошибка не ошибка. Скорее, в Access каждая часть запроса Update
должна быть обновляемой, даже подзапросы, которые редко бывают.
В дополнение к ответу Пола Т (который должен работать), вы можете использовать следующий код:
UPDATE Stores
SET County_ID = DLookUp("Counties.ID", "Counties", "Counties.County = '" & Stores.County & "' AND Counties.State = '" & Stores.State & "'")
DLookUp
- это способ безопасно вернуть первый результат запроса SELECT
(первый аргумент = SELECT
часть, второй FROM
часть, третий WHERE
часть), не вызывая ошибок с блокировками обновления или множественными возвращаемые значения.
Основным преимуществом этого подхода является то, что он не требует блокировки обновления для таблицы Counties
. Основными недостатками являются то, что это часто медленнее, и что если вы используете строковые поля, существует риск внедрения SQL, что может привести к сбою оператора.