自动生成数字

时间:2013-10-31 20:21:04

标签: ms-access access-vba

我需要一个自动生成的跟踪号码。

我在'插入前'动作中添加了这个(见下文),但是在编号9之后我遇到了问题。

我![追踪#] = Nz(DMax(“[追踪#]”,“[TblTrackingNum]”),0)+ 0.01

我的跟踪号始终以89669开头。此代码一直有效,直到达到十号。

跟踪号码应该这样做: 89669.1 ... 89669.2 ... 89669.3 ... 89669.4 ... 89669.5 .....

但在9之后它将数字改为89670.我需要它说89669.10。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

在仅包含一行数据的表中创建一个字段:

NextTrackNum Long

将NextTrackNum初始化为1。

生成号码时,请执行以下操作:

function generateNumber() as double
    dim nextnum as long
    nextnum = dlookup("NextTrackNum", "yourTable", filter...)
    generateNumber = CDbl("89669." & trim(nextnum))
end function

答案 1 :(得分:0)

首先,跟踪号码必须是一个字符串,正如Johnny Bones在评论中已经提到的那样 所以最后一个字段需要是一个字符串,但实际增加的数字需要是一个数字类型(为了正确增加它)

将自动增量字段放入表(并使其成为主键) 这将成为跟踪号码中越来越多的部分。

然后,有多种方法可以从该自动增量字段中生成跟踪编号:

1)在MS Access中创建一个查询,从表中选择并生成跟踪号。

SELECT "89669." & [ID] AS TrackingNumber, YourTable.*
FROM YourTable

永远不要直接使用该表,始终SELECT来自查询:

SELECT * FROM qryYourTable WHERE ...

2)在表格中创建一个名为TrackingNumber的附加文本字段 每次在表格中插入新行时,请使用填充该字段的代码调用查询,并使用正确的值:

Public Function FillTrackingNumbers()

    CurrentDb.Execute "UPDATE YourTable SET TrackingNumber = '89669.' & [ID] WHERE TrackingNumber Is Null"

End Function