'How to specify the max of a field +1 when defining a SetField value in a Before Insert trigger?

I have a database with a table that has as its primary key an autoincrement number field I call id.

In the datasheet view, I want to create some new records using cut/paste of some existing records, then update/modify those records. The paste doesn't work because the id values of the cut records already exist and id is a primary key.

I want to set the value for id to be the max(id)+1 before the insert to avoid the conflict.

I tried to do this with a trigger (using the Before Change event). But I don't know how to specify max(id)+1.

I tried max([id])+1 and max([id+1]), no luck. I also tried to stuff a SQL statement in there, something like select max(id)+1 from thetable. That didn't work.

Does anyone know how to specify max(id)+1 in MS Access lingo such that this might work? I don't think max is a built-in that Access knows about.

Is this a fool's errand? Can this be made to work?

Is there a better way to approach this, maybe with VBA?

Finally, is there a way to stuff a SQL expression in the value field?

I noticed that MS Access supports Before Change and Before Delete, but not Before Insert. Is there the equivalent of a Before Insert trigger for this database?

Thanks!



Solution 1:[1]

Using the "Before Change" event you can set the value as

DMax("[Id]","[YourTableName]")+1

This will work

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Totakura SAMBASIVA RAO