以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 列中的空值更改为NUll (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=42464)
|
-- 作者:zpx_2012
-- 发布时间:2013/11/12 16:37:00
-- 列中的空值更改为NUll
表的某些列中存在一些看起来为空实际又不是Null的值,要用下面的代码将为空的值更改为Null,但是保存后不起作用啊! For Each r As Row In Tables(e.Form.name & "_主表").Rows If r("单据编号") = "" Then r("单据编号") = Nothing \'将单据编号设为Null End If Next 是不是这种情况根本不会触发保存,因为表面看起来没有改变,要怎么办才可以,而且有些空值中可能是几个空格不等,有的还可能有空的换行符。
谢谢!
|
-- 作者:Bin
-- 发布时间:2013/11/12 16:41:00
--
你现在是要清空空格和换行符那些吗?
|
-- 作者:zpx_2012
-- 发布时间:2013/11/12 16:42:00
--
是啊,全部清掉,变为null
|
-- 作者:Bin
-- 发布时间:2013/11/12 16:47:00
--
If RegularExpressions.Regex.IsMatch(r("单据编号"),"^[\\r\\t\\n\\s]+$") Then r("单据编号") = Nothing End If
|
-- 作者:zpx_2012
-- 发布时间:2013/11/12 16:59:00
--
谢谢bin,主要不是匹配的问题,而是用r("单据编号") = Nothing
按保存按钮后保存没有生效,再次用is not null筛选那些修改过的数据还是存在,而用is null筛选却什么都没有,说明还没有设置为Null.
|
-- 作者:Bin
-- 发布时间:2013/11/12 17:01:00
--
你确定不是匹配问题? 试试 r("单据编号") = ""
|
-- 作者:zpx_2012
-- 发布时间:2013/11/12 17:15:00
--
也没用,比如下图:勾选NUll时应该显示单据编号为Null的数据,但却一行也没有,而取消勾选时显示is not null的数据却两行都显示出来了,说明下面那行的单据编号不是null,就想将它修改为null,用1楼的代码保存后却不起作用 此主题相关图片如下:360截图20131112170749435.jpg 
|
-- 作者:Bin
-- 发布时间:2013/11/12 17:19:00
--
上例子,没有道理.
|
-- 作者:e-png
-- 发布时间:2013/11/12 18:15:00
--
这个是导入或复制Excel等粘贴到foxtable里的结果,很早就是这样的了
此主题相关图片如下:未命名.jpg

[此贴子已经被作者于2013-11-12 18:16:02编辑过]
|
-- 作者:zpx_2012
-- 发布时间:2013/11/12 18:23:00
--
原因找到,就是 If r("单据编号") = "" Then r("单据编号") = Nothing \'将单据编号设为Null End If 这个语句执行后保存的话按ft的保存机制是不会保存的,我认为可能它认为"" 和nothing是一样的, 后来改用Update语句直接更新就可以了。
|