以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]获取为空字段的列名称 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50272) |
-- 作者:aduydgd -- 发布时间:2014/5/3 21:51:00 -- [求助]获取为空字段的列名称 高手好,做了个提示,可以获取到位空的字段在第几行,还想获取为空字段的列名称,一直没有搞定,高手帮忙一下, 这是我之前的
MessageBox.Show("第 " & r.Index + 1 & " 行" 这里加代码"不允许为空,请检查数据!","提示")
谢谢! |
-- 作者:y2287958 -- 发布时间:2014/5/3 21:54:00 -- 看看这里有没有启发? |
-- 作者:aduydgd -- 发布时间:2014/5/3 22:16:00 -- 没有 |
-- 作者:y2287958 -- 发布时间:2014/5/3 22:22:00 -- 上个例子和详细说明吧 |
-- 作者:lsy -- 发布时间:2014/5/4 7:36:00 -- Dim s As String Dim cs As String For Each r As Row In Tables("表A").Rows cs = "" For Each c As String In "日期|序号|名称".Split("|") If r.IsNull(c) Then cs + = "【" & c & "】列" End If Next If cs > "" Then s + = "第 " & r.Index + 1 & " 行 " & cs & Vbcrlf End If Next MessageBox.Show(s,"以下各行的几个列值不能为空") |
-- 作者:aduydgd -- 发布时间:2014/5/7 11:58:00 -- 以下是引用lsy在2014-5-4 7:36:00的发言:
Dim s As String Dim cs As String For Each r As Row In Tables("表A").Rows cs = "" For Each c As String In "日期|序号|名称".Split("|") If r.IsNull(c) Then cs + = "【" & c & "】列" End If Next If cs > "" Then s + = "第 " & r.Index + 1 & " 行 " & cs & Vbcrlf End If Next MessageBox.Show(s,"以下各行的几个列值不能为空") 我的字段都是英文,提示的内容人家看不懂啊,怎么让提示中文? |
-- 作者:有点甜 -- 发布时间:2014/5/7 12:54:00 -- 以下是引用aduydgd在2014-5-7 11:58:00的发言:
我的字段都是英文,提示的内容人家看不懂啊,怎么让提示中文?
Dim s As String Dim arycs() As String = "date|num|name".Split("|") Dim arytips() As String = "日期|序号|名称".Split("|") If r.IsNull(arycs(i)) Then [此贴子已经被作者于2014-5-7 12:54:18编辑过]
|
-- 作者:aduydgd -- 发布时间:2014/5/10 9:44:00 -- 大哥,这个提示,有空的记录会提示,提示完成后还会进行下面的操作,没有空记录时,也是会提示,只不过提示框里面没有提示内容,提示完成后也同样会执行下面的操作,这个怎么改改,提示存在空数据后,不能保存,如果不存在空数据,就直接保存就可以了 |
-- 作者:Bin -- 发布时间:2014/5/10 9:50:00 -- 只是想提示YOU空值的列,不能保存的话.无须这么麻烦 在BeforeSaveDataRow中 For Each dc As DataCol In e.DataTable.DataCols If e.DataRow.IsNull(dc.name) Then MessageBox.show(dc.name & "不能为空!") e.Cancel=True Exit For End If Next 如果列名是英文,列标题是中文,那么提示用 For Each dc As DataCol In e.DataTable.DataCols If e.DataRow.IsNull(dc.name) Then MessageBox.show(dc.Caption & "不能为空!") e.Cancel=True Exit For End If Next |
-- 作者:aduydgd -- 发布时间:2014/5/10 11:49:00 -- 以下是引用Bin在2014-5-10 9:50:00的发言:
只是想提示YOU空值的列,不能保存的话.无须这么麻烦 在BeforeSaveDataRow中
For Each dc As DataCol In e.DataTable.DataCols
If e.DataRow.IsNull(dc.name) Then
MessageBox.show(dc.name & "不能为空!")
e.Cancel=True
Exit For
End If
Next 如果列名是英文,列标题是中文,那么提示用
For Each dc As DataCol In e.DataTable.DataCols
If e.DataRow.IsNull(dc.name) Then
MessageBox.show(dc.Caption & "不能为空!")
e.Cancel=True
Exit For
End If
Next 我检测空值字段不是全部的,是个别几个,要提示出哪一行和空值的列,有空值不能保存,没有空值就保存 |