Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 源码示例

后台SQL Server数据库分部门费用明细自动编号

时 间:2008-03-04 15:27:47
作 者:zglsam   ID:292  城市:苏州
摘 要:后台SQL Server数据库分部门费用明细自动编号,由于ID是主键,记录是按部门ID的大小排列的,用竹笛的自动编号源码的查找最后一条数据(DLast)方法会出现错误,现改用查找本部门最大的费用明细编号(DMax)方法。
正 文:

Private Sub AutoID()
'功能:生成分部门的费用明细自动编号
    Dim YM As String
    Dim YMold As String
    Dim YMID As String
    Dim BM As String
   
    '使fyID文本框有效,写入数据
    Me.fyID.Enabled = True
    Me.fyID.SetFocus
   
    '自动编号格式:部门号+FY+日期+四位编号
    '生成日期编号前缀,格式为FY20070101,即年四位,月两位,日两位
    YM = "FY" & Year(Date) & Format(Month(Date), "00") & Format(Day(Date), "00")
  '生成部门编号前缀,用户名为32050402,部门号为第5-6位,格式为04
    BM = Right(Left(Forms!usysfrmlogin!txtUserName, 6), 2)
    '查找本部门最大的费用明细编号
    YMID = DMax("[fyID]", "dbo_tblfyjs", "[fyID] Like '" & BM & "??????????????'")
    '本部门最大的费用明细编号的日期
    YMold = Right(Left(YMID, 12), 10)

    If YM = YMold Then    '若生成的日期编号前缀与本部门最大的费用明细编号的日期相同,则加1
        Me.fyID = BM & YM & Format(CStr(CInt(Right(YMID, 4)) + 1), "0000")
    Else
        若生成的日期编号前缀与本部门最大的费用明细编号的日期不同,则从0001开始编号
        Me.fyID = BM & YM & "0001"
    End If

End Sub



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助