自增序号的函数源码Acchelp_AutoID-小英
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 程序人生


自增序号的函数源码Acchelp_AutoID

发表时间:2013/1/31 13:14:01 评论(1) 浏览(7070)  评论 | 加入收藏 | 复制
   
摘 要:获得某表某字段的下一个编号,在最后一个编号上加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群(群号:198465573)
 
 相关文章
计算年龄函数Acchelp_ages  【竹笛  2008/12/8】
获得年龄段函数Acchelp_agesRange  【竹笛  2008/12/8】
打开Word或EXCEL文件的函数Acchelp_OpenFile  【竹笛  2009/6/11】
避免重复,判断表中某字段存在某值Acchelp_ValueIsEx...  【竹笛  2009/7/13】
判断一个表中某个字段中是否存在某个值的Acchelp_ValueI...  【竹笛  2009/7/31】
通过代码重新引用access开发平台代码库acchelp.umv文...  【jlbaccess  2010/8/21】
umv开发平台通用编号函数AccHelp_AutoID修改  【金宇  2012/3/1】
常见问答
技术分类
相关资源
文章搜索
关于作者

小英

文章分类

文章存档

友情链接