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

UMV自增序号的函数源码Acchelp_AutoID

时 间:2008-01-29 00:00:00
作 者:bamboo   ID:416  城市:青铜峡
摘 要:Acchelp_AutoID
正 文:

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交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

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