以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  我按系统帮助改编的一段代码,可是结果却不一样(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=17569)

--  作者:pb_1
--  发布时间:2012/3/16 21:55:00
--  我按系统帮助改编的一段代码,可是结果却不一样(已解决)

Dim max As String
Dim idx As Integer

max = Tables("bmk").Compute("Max(BH)","substring([bh],5,8) = " & format(Date.Today(),"yyyyMMdd") & "" )
If max>"" Then
idx = CInt(max.Substring(12)) + 1(取最后5位,理论上应该是00001,可我查看了一下取值却是16001
Else
idx = 1
End If

e.form.Controls("LabelBH1").text ="HHZY" & format(Date.Today(),"yyyyMMdd") & Format(idx,"00000")

 

这是一个编号生成的代码,理论上生成的代码为“HHZY2012031600001",第一个生成的代码没有错,可是到后面就成如下规律

HHZY2012031600001

HHZY201203161600002

HHZY20120316161600003

[此贴子已经被作者于2012-3-17 10:01:00编辑过]

--  作者:czy
--  发布时间:2012/3/17 0:01:00
--  
测试没出现你所说的问题
--  作者:pb_1
--  发布时间:2012/3/17 10:04:00
--  

是我错了,我在一个日期控件的TEXTCHANGED事件中也有这段代码,当日期改变的时候,重新计算编号

idx = CInt(max.Substring(10)) + 1

这一句上我从第10个字符开始取值,所以就出错了!问题已经修改过来!谢谢

 

可我就不明白了,我没改变日期控件的值,也会触发TEXTCHANGED事件吗?难道是窗体第一次运行的时候就会触发?