以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]如何取出为空的列名 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=59004) |
-- 作者:liujywwy -- 发布时间:2014/10/28 10:16:00 -- [求助]如何取出为空的列名 代码如下: 当需求描述,show_version,版本期望交期如果有一列为空,就提示需求描述,show version和版本期望交期不能为空。但这样的提示不够准确。 希望能具体到到底是那一列的值或者是哪几列的值为空。 例如,如果是需求描述为空,那就提示需求描述不能为空。 如果是需求描述和show_version都为空,那就提示需求描述和show_version都不能为空。
Dim r As Row = Tables("需求明细表").Current |
-- 作者:Bin -- 发布时间:2014/10/28 10:17:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=59000 |
-- 作者:有点甜 -- 发布时间:2014/10/28 10:19:00 -- If r.IsNull("需求描述") MessageBox.show("请检查,需求描述不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) Else If r.IsNull("show_version") MessageBox.show("请检查,show version不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) Else If r.IsNull("版本期望交期") Then MessageBox.show("请检查,版本期望交期不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) Else |
-- 作者:liujywwy -- 发布时间:2014/10/28 10:32:00 -- 以下是引用有点甜在2014-10-28 10:19:00的发言:
If r.IsNull("需求描述") MessageBox.show("请检查,需求描述不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) Else If r.IsNull("show_version") MessageBox.show("请检查,show version不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) Else If r.IsNull("版本期望交期") Then MessageBox.show("请检查,版本期望交期不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) Else 这么写的话,提示还是不够准确。 比如正好这3列都为空或者其中2列为空。可提示信息只有一列内容。 |
-- 作者:有点甜 -- 发布时间:2014/10/28 10:34:00 -- If r.IsNull("需求描述") MessageBox.show("请检查,需求描述不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) End If If r.IsNull("show_version") MessageBox.show("请检查,show version不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) End If If r.IsNull("版本期望交期") Then MessageBox.show("请检查,版本期望交期不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) End If |
-- 作者:liujywwy -- 发布时间:2014/10/28 10:49:00 -- 以下是引用有点甜在2014-10-28 10:34:00的发言:
If r.IsNull("需求描述") MessageBox.show("请检查,需求描述不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) End If If r.IsNull("show_version") MessageBox.show("请检查,show version不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) End If If r.IsNull("版本期望交期") Then MessageBox.show("请检查,版本期望交期不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) End If 这样也肯定是某一列为空的提醒。 比如这3列都为空。我是否要加入对这3列都为空的判断。如果是2列,那还需要组合一下。 If r.IsNull("需求描述") = True andalso r.IsNull("show_version") = True andalso r.IsNull("版本期望交期") = True Then |
-- 作者:有点甜 -- 发布时间:2014/10/28 10:51:00 -- Dim str As String = "" MessageBox.show("请检查," & str.Trim(",") & "不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) |
-- 作者:Bin -- 发布时间:2014/10/28 10:53:00 -- 参考2楼 dim cns as string = {"列1","列2"} dim cs as string for each s as string in cns if tables(X).current.isnull(s) then cs = cs & "," & "s" end if next messagebox.show(cs.trim(",") & " 不能为空")
[此贴子已经被作者于2014-10-28 10:53:02编辑过]
|
-- 作者:liujywwy -- 发布时间:2014/10/28 11:05:00 -- 以下是引用有点甜在2014-10-28 10:51:00的发言:
Dim str As String = "" MessageBox.show("请检查," & str.Trim(",") & "不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question) 这个方法好。我咋就不知道这么做呢。我试一下。 |
-- 作者:liujywwy -- 发布时间:2014/10/28 11:16:00 -- 试过了,这样是可以的。但有个问题。当这3列都不为空的时候,按道理应该去执行红色字体的代码。可事实上又去执行了一次蓝色字体的代码,提示框的内容为请检查,不能为空。 If r.IsNull("版本期望交期") If r.Isnull("需求描述")=False AndAlso r.Isnull("show_version")=False AndAlso r.Isnull("版本期望交期")=False |