У меня есть база данных с таблицей, в качестве первичного ключа которой используется поле номера автоинкремента, которое я называю 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
для этой базы данных?
Спасибо!