0

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

我在“插入前”操作中添加了这个(见下文),但在数字 9 之后我遇到了问题。

我![Tracking#] = Nz(DMax("[Tracking#]", "[TblTrackingNum]"), 0) + 0.01

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

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

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

有什么建议么?

4

2 回答 2

0

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

将一个自增字段放入表中(并使其成为主键)
这将成为您跟踪号的增加部分。

然后,有不同的方法可以从该自动增量字段中生成跟踪号:

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

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

永远不要直接使用表,总是SELECT从查询中:

SELECT * FROM qryYourTable WHERE ...

TrackingNumber2) 创建一个在表中调用的附加文本字段。
每次在表中插入新行时,从代码中调用一个查询,用正确的值填充字段:

Public Function FillTrackingNumbers()

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

End Function
于 2013-11-02T20:37:24.237 回答
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
于 2013-11-01T02:12:28.740 回答