以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]在表A格式化录入值同时自动在表B新建行,为何新建2行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=39424) |
-- 作者:wxfjamdc -- 发布时间:2013/8/24 1:12:00 -- [求助]在表A格式化录入值同时自动在表B新建行,为何新建2行 现在的代码如下 If e.DataCol.Name = "编号" Then e.DataRow("编号")=format(Val(e.newValue),"000000") \' 格式化编号 Dim dn As DataRow = DataTables("表B").AddNew End If End If |
-- 作者:y2287958 -- 发布时间:2013/8/24 8:03:00 -- 你的代码触动了两次DataRowLockedChanged事件 当然会生成两条记录的
|
-- 作者:狐狸爸爸 -- 发布时间:2013/8/24 8:36:00 -- If e.DataCol.Name = "编号" Then If e.newvalue > "" AndAlso e.newvalue.length <> 6 Then e.DataRow("编号")=format(Val(e.newValue),"000000") \' 格式化编号 Dim dn As DataRow = DataTables("表B").AddNew End If End If |
-- 作者:wxfjamdc -- 发布时间:2013/8/25 10:50:00 -- 如果输入6位那不就不执行添加行了吗 [此贴子已经被作者于2013-8-25 10:50:26编辑过]
|
-- 作者:y2287958 -- 发布时间:2013/8/25 12:10:00 -- 是的 因为你格式化后是6位
|
-- 作者:wxfjamdc -- 发布时间:2013/8/25 13:29:00 -- 那怎么修改能实现了 |
-- 作者:有点甜 -- 发布时间:2013/8/25 21:37:00 -- 楼主应该是写在datacolchanged事件的代码吧。你触发了两次,你应该这样改。 If e.DataCol.Name = "编号" Then e.newvalue = format(Val(e.newValue),"000000") \' 格式化编号 Dim dn As DataRow = DataTables("表B").AddNew End If |