我想请教一个VB的函数编写问题:打开窗体时缴费单号自动生成,缴费单号格式为************,其中第一位为类型代(S,D),中间八位为日期,最后三位为流水号,例如S20080602001。流水号从001开始计数,其后每个操作流水号都依次递增,增量为1。由于两种单号生成方式相同,想编写一个通用函数,请问该如何编写?
希望高手指教,谢谢 !

解决方案 »

  1.   

    从数据库里读取符合规则的最大的流水号
    如果没有则默认为1,否则+1,格式化3位
    然后组合成新的流水号 类型代码 & date & 流水号代码就自己写吧
      

  2.   

    Option ExplicitDim lastwaste As LongPrivate Function getwaste(ByVal types As String) As String
        If lastwaste = 0 Then        '可以照1楼所说,从数据库中读出
            lastwaste = 1
        End If
        Dim s As String
        s = UCase(types) & Format(Date, "yyyymmdd") & Format(CStr(lastwaste), "00#")
        lastwaste = lastwaste + 1
        getwaste = s
        
    End FunctionPrivate Sub Command1_Click()
        Debug.Print getwaste("S")
    End Sub