我用的是MSSQL,QNHEAT表中的QN_NO在设计的时候没有自动编号。所以我想在程序里面实现自动编号。
比如我的编号是这样的。GQN0505后面跟3位自动产生的数字号码。如GQN0505001,GQN0505002,.....
0505意思是05年5月份。
代码怎么实现呢

解决方案 »

  1.   

    获取当前数据库中的编号,取得后3位 变成整数 ct
      
    BH="GQN" & format(Now(),"yymm")  & right("000" & ct ,3)
      

  2.   

    G代表公司编码,QN代表文件编码,0505是系统当前日期,这三部分我都已经获取并能显示了。我的问题是,怎样自动产生3位整数(从001到999)。因为我的编号是10个字符,不能再添加任何一个。
    五月份编号
    GQN0505001
    GQN0505002
    GQN0505003
    ..........
    ..........
    ..........
    ..........
    GQN0505998
    GQN0505999
    六月份编号
    GQN0506001
    GQN0506002
    ..........
    ..........
    ..........
    GQN0506998
    GQN0506999
    七月份
    ..........
    ..........主要是怎样产生后面三位整数
      

  3.   

    1、排序获取目前最大的值,用SQL语句,
     rec.open "SELECT MAX(bh) AS 编号 from 表" ,....
    dim MaxV as long 
    maxv=clng(right(rec.fields("编号").value,3))
    2、更新的时候就象上面写的
    3、注意容错!
      

  4.   

    获得上一条的记录编号
    然后判断是不是今天的
    如是就在后三位的编号+1
    如果不是,就获得今天的日期,然后后面 & 001
      

  5.   

    如果我的表中没有GQN0505001,那不是要自己新增吗?
    有谁有过这样的经验?
    我用了随机数,但是每次编译都会产生相同的编号,跟我上次插进数据库的记录冲突,不好控制
      

  6.   

    用bh存放你要的后三位数
    for i=1 to 999
    if i<10 then bh="00"&cstr(i)
    if i<100 then
     bh="0"&cstr(i)
    else
      bh=cstr(i)
    endif
    next i
      

  7.   

    mikeding(迈飞云) 按照你的算法,我怎么控制它的循环呢,第一次点一下新增,控件Datacombo1就自动新增一个GQN0505001,第二次点的时候就新增GQN0505002,就这样一直下去,直到GQN0505999。
      

  8.   

    也不是主要是循环体内的啊
    再结合suolong123(抵制日货,从娃娃抓起!) 说得,就能实现了啊
      

  9.   

    我控制不了循环的次数,因为循环体放在新增过程里面,一点新增,循环就从GQN0505001变成GQN0505999了。
    我意思是,第一次点新增,编号就是GQN0505001,如果保存了,就添加此新增记录,下次再点新增的时候,就是GQN0505002,再下次就是GQN0505003。