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

 我来答
tjrmgs
2017-04-10 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1050万
展开全部

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

这个自定义函数如何编写取决于您的业务需求。不过由于提问中提到的编号字段属于日期+序号+字母,为了能准确算出当前的最大序号并在其上+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基础的读者还是很容易看明白的,如果要再讲清楚些让初学者都能明白篇幅会很大,这里实在是无法展开,请见谅。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式