Sql 自定义用户自动编号

Sql 自定义用户自动编号,sql,vba,ms-access,autonumber,Sql,Vba,Ms Access,Autonumber,我一直在寻找解决这个自动编号问题的方法。似乎到处都没有明确的答案 我有一个表单,它有一个文本字段 我希望此表单显示表中字段中的下一个数字 示例:该表包含3条值为D001、D002、D003的记录 该表单用于输入新记录(新数据)。因此,下次输入数据时,我希望D004自动显示在表单中数据代码的文本字段中 如何做到这一点?这是一种方法,创建一个函数来处理您遇到的自动编号问题 create function NextAutoNumber() returns char(4) as begin

我一直在寻找解决这个自动编号问题的方法。似乎到处都没有明确的答案

我有一个表单,它有一个文本字段

我希望此表单显示表中字段中的下一个数字

示例:该表包含3条值为D001、D002、D003的记录

该表单用于输入新记录(新数据)。因此,下次输入数据时,我希望D004自动显示在表单中数据代码的文本字段中


如何做到这一点?

这是一种方法,创建一个函数来处理您遇到的自动编号问题

create function NextAutoNumber() 
returns char(4) 
as 
begin 
    declare @lastval char(4) 
    set @lastval = (select max(autoNumber) from table) 
    if @lastval is null set @lastval = 'D001' 

    declare @i int set @i = right(@lastval,3) + 1 return 'C' + right('00' + convert(varchar(10),@i),3) 
end

这样,您可以随时调用函数并插入记录所需的自动号码

您可以使用表单的BeforeInsert事件:

Me!AutoNumber.Value = Format(Val(Nz(Right(DMax("[AutoNumber]", "[YourTable]"), 3), 0)) + 1, "\D000")

您使用的是哪种数据库管理系统?你用的是哪种编程语言?对不起,我没有提到。。。。访问2010。。。VBA和SQL…您如何知道saranmc正在使用哪个DBMS?你的答案是哪个数据库管理系统?是的,我错了。。。这可以在Access中使用吗??作为VBA??谢谢古斯塔夫。。完美地工作。。。。但是只有在输入第一个值时才会出现问题。。。当表为空时,它将失败。。。因此,无法输入D001。。。。而且它不适用于BeforeInsert事件,所以我在表单Open Event中使用了它…OK。添加了Nz以处理空表。参见编辑。啊。。完美的现在它工作得很好。。。正是我想要的。。。非常感谢古斯塔夫!!!!