'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 |