Access数据库培训
网站公告
·Access快速平台QQ群号:277422564    ·Access快速开发平台下载地址及教程    ·欢迎添加微信交流账号:AccessoftChu    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 程序人生

自增序号的函数源码Acchelp_AutoID

时 间:2013-01-31 13:14:01
作 者:小英   ID:23698  城市:河池
摘 要:获得某表某字段的下一个编号,在最后一个编号上加1,需引用DAO3.6
正 文:

Function AccHelp_AutoID(prefixion As String, IDlength As Integer, tblName As String, fldName As String) As String
'功能:获得某表某字段的下一个编号,在最后一个编号上加1,需引用DAO3.6
'修改历史:2006/1/8
'说明:
'prefixion 编码前缀,如果不需要前缀,可用""代替,如AccHelp_AutoID("",5,"表名称","字段名称")
'IDlength 编码位数
'tblName 表名称
'fldName 自增序号的字段名称
'tblName 是指表的名称
'作者:竹笛 (微软最有价值专家)
'说明:您可以无偿地在您自已开发的软件中应用此函数,为了尊重作者的劳动,请保留这些说明信息。同时您不得用于盈利的商业用途,欢迎大家提出修改意见,并就此函数与作者交流
'邮箱:admin@accessoft.com
    On Error GoTo Err_AccHelp_AutoID:
    Dim i As Long    '最后的一个编号
    Dim ForMatString As String    '格式化字符串
    Dim rst As DAO.Recordset
    ForMatString = String(IDlength, "0")
    If DCount(fldName, tblName) = 0 Then    '如果没有开始编号,则为1
        AccHelp_AutoID = prefixion & Format(1, ForMatString)
    Else
        Set rst = CurrentDb.OpenRecordset(tblName, dbOpenDynaset)
        rst.MoveLast
        i = Val(Right(rst(fldName), IDlength)) + 1
        AccHelp_AutoID = prefixion & Format(i, ForMatString)
        rst.Close
        Set rst = Nothing
    End If
Exit_AccHelp_AutoID:
    Exit Function
Err_AccHelp_AutoID:
    AccHelp_AutoID = "#"
    rst.Close
    Set rst = Nothing
End Function

 

示例下载地址: http://www.accessoft.com/down/Acchelp_AutoID.rar

代码如下:

Option Compare Database

Private Sub Form_Load()
Me.ygID.SetFocus
Me.ygID = AccHelp_AutoID("Y", 2, "tblCodeyg", "ygId")

End Sub

Private Sub ToolbarFrm_ButtonClick(ByVal Button As Object)
    Select Case Button
    Case "保存"
    Case "关闭"
        DoCmd.Close
    End Select
End Sub

Function AccHelp_AutoID(prefixion As String, IDlength As Integer, tblName As String, fldName As String) As String
'功能:获得某表某字段的下一个编号,在最后一个编号上加1,需引用DAO3.6
'修改历史:2006/1/8
'说明:
'prefixion 编码前缀,如果不需要前缀,可用""代替,如AccHelp_AutoID("",5,"表名称","字段名称")
'IDlength 编码位数
'tblName 表名称
'fldName 自增序号的字段名称
'tblName 是指表的名称
'作者:竹笛 (微软最有价值专家)
'说明:您可以无偿地在您自已开发的软件中应用此函数,为了尊重作者的劳动,请保留这些说明信息。同时您不得用于盈利的商业用途,欢迎大家提出修改意见,并就此函数与作者交流
'邮箱:admin@accessoft.com
    On Error GoTo Err_AccHelp_AutoID:
    Dim i As Long    '最后的一个编号
    Dim ForMatString As String    '格式化字符串
    Dim rst As DAO.Recordset
    ForMatString = String(IDlength, "0")
    If DCount(fldName, tblName) = 0 Then    '如果没有开始编号,则为1
        AccHelp_AutoID = prefixion & Format(1, ForMatString)
    Else
        Set rst = CurrentDb.OpenRecordset(tblName, dbOpenDynaset)
        rst.MoveLast
        i


 



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

最新评论 查看更多评论(1)

2019/6/10 20:54:11假球迷
好东西

发表评论您的评论将提升作者分享的动力!快来评论一下吧!

用户名:
密 码:
内 容:
 

常见问答

技术分类

相关资源

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