
access在编号前面加01:可以用dcount函数。基于“表1”创建汇总查询“查询1”,再基于“查询1”创建“查询2”。
在ACCESS数据库中,自动编号字段能自动累加编号,保证编号的唯一性。即便是删除表中所有记录,输入新记录时,编号仍然会接着原来最后一条记录的编号往下编的。
access特性:
access其开发对象主要是Microsoft JET数据库和Microsoft SQLServer数据库。由于在Office 97及以前的版本中,Microsoft JET 3.51及以前版本的数据库引擎是随Access一起安装和发布的,JET数据库与Access就有了天生的血缘关系。
access并且Access对JET数据库做了很多地扩充,如,在Access的环境中,可以在查询中使用自己编写的VBA函数,Access的窗体、报表、宏和模块是作为一种特殊数据存储在JET数据库文件(.mdb)中,只有在Access环境中才能使用这些对象。
可以编写一个自定义编号函数,然后在保存新记录时调用它。
这个自定义函数如何编写取决于您的业务需求。不过由于提问中提到的编号字段属于日期+序号+字母,为了能准确算出当前的最大序号并在其上+1,编号格式必须是固定的否则很难做到准确找出当前最大编号。
下面编写一个自定义编号函数供参考,该函数以系统日期为前导并在已有的最大序号上自动+1:
这里假设被查找的表结构为:
T1(编号)
Public Function myNewID() As StringDim 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
注意调用该函数应在保存新纪录那一刻调用,以反映当前数据库的最新状况。
方法一:删个那个自动编号的字段,再建一个同样的自动编号字段即可。
方法二:
自动编号是一直增加的(每次都加1),你再增加一条记录它的编号会在前面的基础上加1(删除的也算),如果你编号为1的记录被删除了,你想再要从1开始,可以打开Access数据库,选择工具,再选择数据库实用工具,单击压缩和修复数据库,这样就OK了.
方法三:(没试过)
1、在access里新建一个查询。
2、把视图改为sql视图。
3、在里面输入
ALTER TABLE 表名 ALTER COLUMN [自动编号字段名] COUNTER (你要的初始值, 1)
例如:
ALTER TABLE [user] ALTER COLUMN [id] COUNTER (1001, 1)
4、运行后,编号就从1001开始了。
数据库表中自动编号字段用一段时间后,把数据全删了再新增数据时也不会从1开始的,而是接着以前的值加1或增加设定的步值,Access,mysql,mssql等都是这样的。怎么才能让数据清空后自动编号从1开始?有时候又想让Access数据库自动编号不从1开始,而想从指定的值开始,或让ACCESS自动编号一次增长指定的步值?
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)