在ACCESS中编号怎样自动加1,例如:201704080001A,下一个编号自动生成201704080002A

如题所述

可以编写一个自定义编号函数,然后在保存新记录时调用它。

这个自定义函数如何编写取决于您的业务需求。不过由于提问中提到的编号字段属于日期+序号+字母,为了能准确算出当前的最大序号并在其上+1,编号格式必须是固定的否则很难做到准确找出当前最大编号。

下面编写一个自定义编号函数供参考,该函数以系统日期为前导并在已有的最大序号上自动+1:

这里假设被查找的表结构为:

T1(编号)

Public Function myNewID() As String
Dim strg As String,n As Long
strg=Format(Date(),"yyyymmdd")
'这里假设所有的编号都是严格按格式“yyyymmdd”+ 4位序号 + “A”录入的
strg=Nz(DMax("编号","T1","编号 Like '" & strg & "*'"),"")
If strg="" then
n=10001
Else
n=Val(Mid(strg,9,4)) + 10001
End If
strg=strg & Right(n,4) & "A"
myNewID=strg
End Sub

注意调用该函数应在保存新纪录那一刻调用,以反映当前数据库的最新状况。

追问

可否详细说明下,我是初字者,你写的我看不懂,谢谢

追答

因为我的回答里涉及的知识点非常多,初学者要看明白确实是比较困难。它包括数据类型和数据结构、类型转换、系统函数、vba编程语言等等知识。我的回答已经比较详细了,其基本思路就是在数据表里找出最大的编号然后取序号+1,再将得到的数字序号转换为文本类型序号,具有一定access基础的读者还是很容易看明白的,如果要再讲清楚些让初学者都能明白篇幅会很大,这里实在是无法展开,请见谅。

追问

谢谢,您的QQ 是多少啊, ,有事请教,谢谢

追答

抱歉我没有私人qq。有问题直接在知道上向我提问就行了,我会尽力回答的

温馨提示:答案为网友推荐,仅供参考
相似回答