以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  精华分享  (http://egrid2000.com/dvbbs/list.asp?boardid=12)
----  年份变更时如何重新编写流水号(小吴原创)  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=12&id=962)

--  作者:喜爱易表
--  发布时间:2006/8/13 15:19:00
--  年份变更时如何重新编写流水号(小吴原创)
利用易表的默认值公式和SerialNo()函数可以很方便地实现自动编号,比如我们在某列里写上001、002、003,然后再将该列的默认值公式设置为SerialNo(0),那么以后新增行的时候编号就会自动往下编写:004、005、006……

  但是如果我们的编号规则里有年份,当年份变更的时候希望编号重新开始,那么该如何设置默认值公式呢?比如我的编号是2003001、2003002……,当时间到2004年的时候,怎样实现新增记录的时候编号为2004001呢?

  其实很简单,看下面这个例子:
egd文件下载打开后将系统时间的年份改为2006年,然后用CTRL+A来新增一行,就会发现编号从2006001开始了。其实,这个例子只用了一个默认值公式:If(Number(Format(today(),"yyyy"))-Number(Mid(Cell(Row-1,Col),0,4))=1,Format(today(),"yyyy")+"001",SerialNo(0))

  其实公式的原理很简单:如果“当前年份-当前列上一行编号中的年份部分=1”时,编号就是“当年年份+001”,反之则延续上面的编号规则。

编后话:
  用了这样的方法,对于管理有按年份编号需要的数据库系统将非常有利于数据的规则性,需要注意的就是应该保证机器系统时间的正确。