每月和每年重置的 Ms Access 系列编号

Ms Access series numbering that resets monthly and yearly

我 运行 我的代码有问题。

我的 MS Access 数据库需要在新的月份或年份的开始时重置序列号字段。

然而,在测试数据库时,它运行良好,直到我到达第 10 条记录,之后我收到重复值警告。

我完全搞不懂哪里做错了。

请帮忙?代码贴在下面:

Private sub form_beforeinsert(Cancel as integer)

dim vlast as variant
dim invnext as integer

me.invyear = format(date,"yyyy") & format(date, "mm")
vlast = dmax("SeriesNumber", "invoice", "InvYear='" & Me.invyear.value & "'")

if isnull(vlast) then
    invnext = 1
else
    invnext = vlast + 1
end if

me.seriesnumber = invnext
me.invoicenumber = format(date, "yyyy") & "-" & Format(date, "mm") & "-" Me.SeriesNumber

End Sub 

这是因为您似乎将所有内容都存储为文本。因此,转换为 number 以检索数值最大值:

    vlast = DMax("Val([SeriesNumber])", "invoice", "InvYear='" & Me!invyear.Value & "'")