Как указать максимум поля +1 при определении значения SetField в триггере перед вставкой? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть база данных с таблицей, в качестве первичного ключа которой используется поле номера автоинкремента, которое я называю id.

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

Я хочу установить для id значение max(id)+1 перед вставкой, чтобы избежать конфликта.

Я попытался сделать это с помощью триггера (используя событие Before Change).Но я не знаю, как указать max(id)+1.

Я пробовал max([id])+1 и max([id+1]), не повезло.Я также попытался вставить туда оператор SQL, например, select max(id)+1 from thetable.Это не сработало.

Кто-нибудь знает, как указать max(id)+1 в MS Access на таких языках, чтобы это могло работать?Я не думаю, что max - это встроенная программа, о которой знает Access.

Это глупое поручение?Можно ли заставить это работать?

Есть ли лучший способ приблизиться к этому, может быть, с VBA?

Наконец, есть ли способ вставить выражение SQL в поле значения?

Я заметил, что MS Access поддерживает Before Change и Before Delete, но не Before Insert.Есть ли эквивалент триггера Before Insert для этой базы данных?

Спасибо!

...