以文本方式查看主题

-  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语句直接更新就可以了。