以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自动编码时没有在指定表中先查找  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132265)

--  作者:有点甜
--  发布时间:2019/3/18 17:10:00
--  

加入代码,弹出什么?

 

max = Tables("条码基础数据").DataTable.SQLCompute("Max(毛坯编码)","投产日期 >= \'" & fd & "\' And 投产日期 <= \'" & ld & "\'") \'取得该月的最大编号

msgbox(max)
If max > "" Then \'如果存在最大编号
    idx = CInt(max.Substring(4)) + 1 \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If

max(idx)

 

如果弹出的值不正确,那就先保存表格,再sqlcompute


--  作者:有点甜
--  发布时间:2019/3/18 18:10:00
--  

条件加上字符数量,参考

 

max = Tables("条码基础数据").DataTable.SQLCompute("Max(毛坯编码)","投产日期 >= \'" & fd & "\' And 投产日期 <= \'" & ld & "\' and len(毛坯编码)=8") \'取得该月的最大编号


--  作者:有点甜
--  发布时间:2019/3/19 10:02:00
--  
以下是引用nuoyan88在2019/3/19 7:59:00的发言:

老师,两种位数都是8位,这样设置没有用,不能控制,结果还是一样的,还有别的办法吗?谢谢


图片点击可在新窗口打开查看此主题相关图片如下:1.png

 

那就找不同点,比如第一位是1或者2的,或者第一位是数值不是字母的,如

 

max = Tables("条码基础数据").DataTable.SQLCompute("Max(毛坯编码)","投产日期 >= \'" & fd & "\' And 投产日期 <= \'" & ld & "\' and substring(毛坯编码,1,1) in (\'1\', \'2\')") \'取得该月的最大编号