我的代码遇到了问题。
我的 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
这是因为你似乎将所有内容都存储为文本。因此,转换为数字以检索数值最大值:
vlast = DMax("Val([SeriesNumber])", "invoice", "InvYear='" & Me!invyear.Value & "'")
私有子表单_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
结束子
不工作