以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]本年内piao据号不重复的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59853)

--  作者:ZHX88863808
--  发布时间:2014/11/12 12:04:00
--  [求助]本年内piao据号不重复的代码

表A中有一日期列和一票据列,因需要本年内的票据号不能重复,但隔年的票据号可以重复,请前辈老师帮忙写个代码,谢谢!


--  作者:jspta
--  发布时间:2014/11/12 12:44:00
--  
直接设计成都不重复就没这个烦恼了
--  作者:jialihaha
--  发布时间:2014/11/12 13:42:00
--  
http://www.foxtable.com/help/topics/2481.htm
--  作者:jialihaha
--  发布时间:2014/11/12 13:43:00
--  
禁止多列
--  作者:有点甜
--  发布时间:2014/11/12 14:16:00
--  

 参考 http://www.foxtable.com/help/topics/2403.htm

 


--  作者:ZHX88863808
--  发布时间:2014/11/12 18:09:00
--  
谢谢各位前辈老师,但是如果运用时间编号或者多列不重复,录入单据时因录入错误也不会知道,导制以后查询数据就有可能不准确,单位一套单据用完,会用下一套单据,但两套或更多套单据有可能重复,但每套单据单位一般使用都在一年以上,所以我认为如果能用代码设置成当年单据号可以不重复,隔年可以重复那是最好不过了,如果这个能行的话,很希望前辈老师能帮忙写个代码,谢谢!
--  作者:有点甜
--  发布时间:2014/11/12 19:07:00
--  
 5楼就是啊,根据你的需要改一下来用啊
--  作者:有点甜
--  发布时间:2014/11/12 19:11:00
--  

DatarowAdding事件,加入代码

 

Dim bh As String = Date.Today.Year
Dim max As String = e.DataTable.Compute("max(第一列)", "第一列 like \'" & bh & "%\'")
Dim idx As Integer = 0
If max > "" Then
    idx = max.SubString(bh.Length)
End If

e.DataRow("第一列") = bh & format(idx+1, "000000")


--  作者:ZHX88863808
--  发布时间:2014/11/12 19:20:00
--  
老师刚才试了一下未成功,请再帮我修改一下,谢谢!
--  作者:有点甜
--  发布时间:2014/11/12 19:22:00
--  
8楼就是