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

问题描述 投票:0回答:2

我的代码遇到了问题。

我的 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 
vba ms-access
2个回答
0
投票

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

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

0
投票

私有子表单_BeforeInsert(取消为整数) Dim vlast 作为变体 Dim invnext 作为整数

Me.InvYear = 格式(日期,“yyyy”) vlast = DMax("SeriesNumber", "Invoice", "InvYear='" & Me.InvYear.Value & "'")

如果 IsNull(vlast) 那么 下一个= 1 别的 invnext = vlast + 1 结束如果

Me.SeriesNumber = invnext Me.InvoiceNumber = Format(日期, "yyyy") & "-" & Me.SeriesNumber

结束子

不工作

© www.soinside.com 2019 - 2024. All rights reserved.