怎样让Text自动产生单号,是接时间产生的?如PL4010002A ,4表示2004年,01表示一月份,0002为该月的第二张单,而且是看递增的。请大侠帮助

解决方案 »

  1.   

    text1.text="LP" + format(DATE$,"ymm") + cstr(val(mid(text1.text,6,len(text1.text)-1)+1)如果你原来text1.text里有内容PL4010002A
    那么运行如上程序就会成为:PL4010003A,再运行就是PL4010004A......
      

  2.   

    以前也遇过类似问题,
    第一次我是这样做的:很笨的  ^_^  ,用MAX函数取出最大的然后+1便是新的单号.
                       同一天数据多的情况下,性能肯定有问题了,max函数是要一个一个比较
                       的呀.后来:是在一产生了一个新的单号成功之后就自加1然后,放到临时表或ini中,在下次要产生新
         单号之 前就直接来取就行了,操作添加成功之后才重新又更新那个+1的单号(即前面的写
         ini文件或插入临时表的操作),如失败了就不更新那个值了. 因为是直接去取一个单的
         值效率上肯定有保证了.
    这个只是小弟的做法,大家肯定还有不同的或者是更好的,期待交流ing,期待学习ingup
      

  3.   

    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
    最后将前后的字符加上不就可以了
      

  4.   

    如果楼主开发的程序不止在一台机器上运行的话,只能用MAX一个一个找
      

  5.   

    搂主过年去了,~_~
    是在Text上做作业,还是挂有数据库?
    如果有后端数据库,用select top 1 (xx+1) as M from xxxx order by xx DESC 取出最大值顺便加1,无论单用户多用户都适合。
      

  6.   

    在SQL数据库中,你要考虑到多用户情况.我也说白了吧,我是一直做商务软件的,经常要用到自动生成BILL ID.就算是单用户的情况,为了防止出错.你也要这样.因为,BILLID一般是索引,返回最大值时是非常快的(只一访问数据一次).
      

  7.   

    如PL4010002A ,4表示2004年,01表示一月份,0002为该月的第二张单,而且是看递增的。请大侠帮助,新春快乐!!!!!!1.首先从数据库中取当前最大单号.将其值赋给一个变量.例如.DIM IDEID AS STRING
      相关的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] 会搜索完整个数据库.
      

  8.   

    SELECT MAX[BILLID] AS MAXBID FROM [TABLENAME]