各位高手你们好问题如下:有一个流水单表.
我需要那个流水单号.
比如
2004年5月15日
第一条记录编号为:200405151
第二条记录编号为:200405152
第三条记录编号为:200405153
以此类推...
到了2004年5月16日
第一条记录编号为:200405161
第二条记录编号为:200405162
第三条记录编号为:200405163
也类推...反正过一天,后面的那个编号就自动从1开始了需要用VB得出此编号...
谢谢各位了....

解决方案 »

  1.   

    CREATE         proc prGetBillCode
    @bill_sign_AB char(1)
    as
    /*Bill_sign:A:获取入库单号
        B:获取出库单号
    */ declare @recCount int
    declare @sTmp varchar(20)
    declare @bill_sign char(1)
    set nocount on
    set @bill_sign=@bill_sign_AB
    set @bill_sign=upper(@bill_sign)
    if @bill_sign<>'A' and @bill_sign<>'B'
    begin
    RAISERROR ('输入了非A,B之间的字符', 16, 1)
    return 1
    end
    --先删除非今在的单号
    delete from t_BillCode_dta where bill_sign=@bill_sign and
    substring(code,1,8)<>REPLACE(convert(varchar(10),getdate(),120),'-','')
    select @recCount=count(*) from t_BillCode_dta where bill_sign=@bill_sign
    if @reccount=0
    begin
    set @sTmp=replace(convert(varchar(10),getdate(),120),'-','')
    set @sTmp=@sTmp+@bill_sign+'0001'
    insert into t_billcode_dta values(@sTmp,@bill_sign)
    if @@rowcount>0
    begin
    select @sTmp as BillCode
    set nocount off
    return 0
    end
    else
    begin
    RAISERROR ('生成单号错误!', 16, 1)
    return 1
    end
    end
    else
    begin
    declare @nTmp int
    select @sTmp=code from t_billcode_dta where bill_sign=@bill_sign
    set @sTmp=substring(@sTmp,10,4)
    set @nTmp=cast(@sTmp as int)
    set @nTmp=@nTmp+1
    set @stmp=REPLICATE('0',4-len(cast(@nTmp as varchar(4))))+cast(@nTmp as varchar(4))
    update t_billcode_dta set code=replace(convert(varchar(10),getdate(),120),'-','')+@bill_sign+@sTmp
    if @@rowcount>0
    begin
    select code as BillCode from t_billcode_dta where bill_sign=@bill_sign
    set nocount off
    return 0
    end
    else
    begin
    RAISERROR ('生成单号错误!', 16, 1)
    return 1
    end
    return 0
    set nocount off
    end
    GO给你一个我写的存储过程.你参考一下.
      

  2.   

    Dim rs As RecordSet
    Dim NewBH As StringSet rs = db.Execute("Select Count(bh)+1 As xxh From table1 Where Left(bh, 8)='" & Format(Date, "YYYYmmdd") & "'")
    NewBH = Format(Date, "YYYYmmdd") & rs!xxh
      

  3.   

    用select max(流水单号) as NewCol from ....取得最后一笔记录
    再用Left(rs!NewCol,8)取得该记录的日期再用DATE判断是否与今日相同,同则继续将流水单号加1,不同就在后面以1记
      

  4.   

    '取得表的主键
    Public Function GetID(ls_Table) As String
    On Error GoTo Errhandle
        Dim ls_ID As String, rs As New ADODB.Recordset
        
        ls_ID = Format$(ls_CurDate, "YYYYMMDD")
        If rs.State = adStateOpen Then rs.Close
        rs.Open "select max(ID) from " & ls_Table & " where ID like '" & ls_ID & "%'", cn, adOpenForwardOnly, adLockReadOnly    If IsNull(rs.Fields(0).Value) Then
            ls_ID = ls_ID & "0001"
        Else
            ls_ID = rs.Fields(0).Value + 1
        End If    GetID = ls_ID
        rs.Close
        Set rs = Nothing
        
        Exit Function
    Errhandle:
        If rs.State = adStateOpen Then rs.Close
        Set rs = Nothing
        ErrView Err.Description
    End Function
      

  5.   

    算法如下:
    数据库中dateID为该流水号dim useID as stringrs.open "select * form <数据库> where ... order by dateID"
    if rs.recordset>0 then
      rs.movelast
      useiID=trim(rs!dateID)
      if val(mid(useID,7,2))=val(day(date)) then
          useID=mid(useID,1,8) &str(val(mid(useID,9))+1)
      else
          useID=year(date)& format(day(date),"0#")&format(day(date),"0#")&"1"
      end if
    else
       useID=year(date)& format(day(date),"0#")&format(day(date),"0#")&"1"
    end if
    rs.close
      
      

  6.   

    请问射天狼
    ls_ID = Format$(ls_CurDate, "YYYYMMDD")
    这里面的ls_CurDate 是干嘛的?
    运行提示变量未定义
      

  7.   

    ls_CurDate是系统的当前日期!!'取数据服务器当前时间
    Public Function GetCurDate() As String
    On Error Resume Next
        Dim rs As New ADODB.Recordset
        
        rs.Open "select GetDate() from USERPASSWORD", cn, adOpenKeyset, adLockReadOnly
        If IsNull(rs.Fields(0).Value) Then
            GetCurDate = Format$(Date, "yyyy/mm/dd hh:mm")
        Else
            GetCurDate = Format$(rs.Fields(0).Value, "yyyy/mm/dd hh:mm")
        End If    rs.Close
        Set rs = Nothing
    End Function
      

  8.   

    还是没弄出来
    你可以把整个文件和数据库传给我吗?
    我邮箱是[email protected]
    麻烦你了哦。。谢谢