以下是我的数据示例:
ID
- autonumber
〜是他们的primary key
Week
- 从字面上看,一周仔猪出生了
Sow Order
- 播种号
规则:
如果仔猪出生在同一周,不管他们的母猪。仔猪编号继续
2.如果仔猪出生在下周,编号将返回0001,然后是规则1.
添加仔猪的方式是week + sow + (number of piglets)
。例如,(10),它将产生10只仔猪0001至0010,周= 01&母猪= 01
问题是,如果用户对要添加的仔猪数量有误,该怎么办?根据图片01 01 has two piglets
,如果它不仅仅是2?说,它的3.所以用户需要删除它然后编号必须调整为..
01 | 01 | 0001
01 | 01 | 0002
01 | 01 | 0003
01 | 02 | 0004
01 | 02 | 0005
做这种事的正确方法是什么?
答案 0 :(得分:1)
如果Access数据库版本至少是Access 2010,则可以使用事件驱动的数据宏来强制执行编号方案。对于名为[Piglets]
的表
包含[AfterInsert]的数据宏:
[更新后]:
[AfterDelete]:
和命名数据宏[RenumberPiglets]:
即使从外部应用程序(例如,VB.NET或C#)更新表,重新编号也会自动进行。
对于Access数据库版本2007及更早版本,必须将类似的逻辑写入用于更新表的数据输入表单。