在ACCESS中编号怎样自动加1,例如:201704080001A,下一个编号自动生成201704080002A
1个回答
展开全部
可以编写一个自定义编号函数,然后在保存新记录时调用它。
这个自定义函数如何编写取决于您的业务需求。不过由于提问中提到的编号字段属于日期+序号+字母,为了能准确算出当前的最大序号并在其上+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基础的读者还是很容易看明白的,如果要再讲清楚些让初学者都能明白篇幅会很大,这里实在是无法展开,请见谅。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询