PL4010002A 既然编号长度是固定的,你可以这样做 先找到最大的记录,再判断年,然后判断月份,如果是要找的年、月的编号,然后取出四位自动 dim s,t as string s="PL4010002A" t=left(right(s,5),4) for i=1 to len 4-len(cint(t)) t="0" & t next i 最后将前后的字符加上不就可以了
如果楼主开发的程序不止在一台机器上运行的话,只能用MAX一个一个找
搂主过年去了,~_~ 是在Text上做作业,还是挂有数据库? 如果有后端数据库,用select top 1 (xx+1) as M from xxxx order by xx DESC 取出最大值顺便加1,无论单用户多用户都适合。
那么运行如上程序就会成为:PL4010003A,再运行就是PL4010004A......
第一次我是这样做的:很笨的 ^_^ ,用MAX函数取出最大的然后+1便是新的单号.
同一天数据多的情况下,性能肯定有问题了,max函数是要一个一个比较
的呀.后来:是在一产生了一个新的单号成功之后就自加1然后,放到临时表或ini中,在下次要产生新
单号之 前就直接来取就行了,操作添加成功之后才重新又更新那个+1的单号(即前面的写
ini文件或插入临时表的操作),如失败了就不更新那个值了. 因为是直接去取一个单的
值效率上肯定有保证了.
这个只是小弟的做法,大家肯定还有不同的或者是更好的,期待交流ing,期待学习ingup
既然编号长度是固定的,你可以这样做
先找到最大的记录,再判断年,然后判断月份,如果是要找的年、月的编号,然后取出四位自动
dim s,t as string
s="PL4010002A"
t=left(right(s,5),4)
for i=1 to len 4-len(cint(t))
t="0" & t
next i
最后将前后的字符加上不就可以了
是在Text上做作业,还是挂有数据库?
如果有后端数据库,用select top 1 (xx+1) as M from xxxx order by xx DESC 取出最大值顺便加1,无论单用户多用户都适合。
相关的SQL:
SELECT MAX[BILLID] AS MAXBID FROM [TABLENAME]2.分解该单号.
IDEID=MID$IDEID,6,4)
3.TEXT1.TEXT="PL" & right(FORMAT$(DATE,"YYYY"),1) & FORMAT$(DATE,"MM") & CLNG(IDEID+1) & "A"注:不要在SQL语句的字段名中加入运算符,那样会使SQL一条条比较 该字段名,速度很慢.
例如:SELECT MAX(MID([IDEID],6,4)) AS MAXBID FROM [TABLENAME] 会搜索完整个数据库.