以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]必填字段代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74859) |
-- 作者:ZHX88863808 -- 发布时间:2015/9/21 12:20:00 -- [求助]必填字段代码 请问前辈老师:表A中A列、B列、C列,为必填字段,就问代码怎么写,谢谢! |
-- 作者:大红袍 -- 发布时间:2015/9/21 14:18:00 -- beforeSaveDataRow事件
If e.DataRow.IsNull("A") OrElse e.DataRow.IsNull("B") OrElse e.DataRow.IsNull("C") Then msgbox("某行没填") e.Cancel = True End If |
-- 作者:blsu33 -- 发布时间:2015/9/21 14:51:00 -- Dim str() As String={"A","B","C"} Dim i As Integer For i=0 To str.Length-1 If e.Col.Name=str(i) ANDALSO e.DataRow.IsNull(str(i)) Then e.Cancel=True msgbox("某行没填") Exit For End If Next
[此贴子已经被作者于2015/9/21 15:17:04编辑过]
|
-- 作者:ZHX88863808 -- 发布时间:2015/9/21 20:34:00 -- 谢谢两位老师,但是,我发现上面代码只能适用于表A,而不能同时适用于表B,即只能在一个表上用,我的本意是如果在任意表中,在输入的行中,如果必填的A列、B列、C列,没有填完,则不可进入下一行进行数据输入,如果进入下一行进行数据输入就给能提醒“请必忘记上一行必填数据”,还望老师帮忙修改一下代码,谢谢! |
-- 作者:大红袍 -- 发布时间:2015/9/21 20:53:00 -- 参考代码
http://www.foxtable.com/help/topics/0644.htm
|
-- 作者:ZHX88863808 -- 发布时间:2015/9/21 21:23:00 -- 谢谢老师,因水平问题,我还是肯请老师帮我按上面的想法写个含提示的代码,这样对操作人员会更好些,谢谢! |
-- 作者:大红袍 -- 发布时间:2015/9/21 21:32:00 -- If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行 If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行 Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行 If r.DataRow.RowState <> DataRowState.Unchanged Then Dim str() As String={"第一列","第二列"} Dim i As Integer For i=0 To str.Length-1 If r.IsNull(str(i)) Then e.Cancel=True msgbox(str(i) & " 没填") Exit For End If Next End If End If End If |
-- 作者:ZHX88863808 -- 发布时间:2015/9/21 21:40:00 -- 老师:太棒了,谢谢您!!! |