以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助][原创]如何对录入的数字格式化,在哪个表事件中?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=38482)

--  作者:kunge
--  发布时间:2013/7/30 13:51:00
--  [求助][原创]如何对录入的数字格式化,在哪个表事件中?
我有个产品信息表,有个产品编号是字符型,可以改成整数型,最好不改,怎么再录入数据时,进行格式化,格式化成6位数,

在表事件中AfterEdit:用下面的代码,不行!
请高手给个正确的代码?

Tables("产品信息表").Current("产品编号").FormatString = "000000"


--  作者:Bin
--  发布时间:2013/7/30 14:09:00
--  
再DataColChanged事件中做吧
--  作者:kunge
--  发布时间:2013/7/30 14:16:00
--  
代码呢?怎么写
--  作者:lsy
--  发布时间:2013/7/30 14:18:00
--  

e.Table.Current("第六列") = e.Table.Current("第六列").PadLeft(6,"0")


--  作者:Bin
--  发布时间:2013/7/30 14:22:00
--  
If e.DataCol.name ="第二列" Then
    e.DataRow("第二列")=format(Val(e.newValue),"000000")
End If

--  作者:kunge
--  发布时间:2013/7/30 14:46:00
--  
这段代码,录入时,离开单元格,狐表直接关闭了
[此贴子已经被作者于2013-7-30 14:47:13编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/7/30 14:50:00
--  

判断一下:

 

If e.DataCol.name ="第二列" Then
    If e.DataRow.Isnull("第二列") = False AndAlso e.DataRow("第二列").Length <> 6 Then
        e.DataRow("第二列")=format(Val(e.newValue),"000000")
    End If
End If