每月和每年重置的 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 & "'")
我 运行 我的代码有问题。
我的 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 & "'")