数据更改完成后,自动重新编号Access表中的记录

时间:2014-02-13 09:50:15

标签: .net database vb.net ms-access

以下是我的数据示例:

enter image description here
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 

做这种事的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

如果Access数据库版本至少是Access 2010,则可以使用事件驱动的数据宏来强制执行编号方案。对于名为[Piglets]

的表

PigletsTable.png

包含[AfterInsert]的数据宏:

AfterInsert.png

[更新后]:

AfterUpdate.png

[AfterDelete]:

AfterDelete.png

和命名数据宏[RenumberPiglets]:

RenumberPiglets.png

即使从外部应用程序(例如,VB.NET或C#)更新表,重新编号也会自动进行。

对于Access数据库版本2007及更早版本,必须将类似的逻辑写入用于更新表的数据输入表单。