有个客户说,如果有多个操作人员同时对某个模块录入数据,会出现数据错乱的情况。
经过检查,该模块的主键是通过代码进行编号,前缀P + 日期YYYYMMDD + 3位序号,这个编号其实
Access快速开发平台自带的自动编号功能就可以实现,没必要再自己实现。
该客户在编辑窗体加载的时候就调用编号函数生成主键,然后维护好信息再保存,这个中间其实会存在一定的时间差,如果在这个时间内,有其他操作员执行新增操作,那么这个函数生成的主键就会与刚才的重复。这样在保存的时候,后保存的数据就会覆盖掉之前保存的。
解决方法:
1、使用Access快速开发平台的自动编号功能,
GetAutoNumber函数有最后编号的记录功能,可以防止生成重复编号;
2、将原来在加载时生成编号改为在保存时生成编号,这样就可以避免由于生成编号后长时间未保存到正式数据,导致函数生成重复的编号;
3、修改自定义函数,增加记录最后编号的功能,防止生成重复编号。