Foxtable(狐表)用户栏目专家坐堂 → [求助]必填字段代码


  共有3325人关注过本帖树形打印复制链接

主题:[求助]必填字段代码

帅哥哟,离线,有人找我吗?
ZHX88863808
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
[求助]必填字段代码  发帖心情 Post By:2015/9/21 12:20:00 [只看该作者]

请问前辈老师:表A中A列、B列、C列,为必填字段,就问代码怎么写,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2015/9/21 20:34:00 [只看该作者]

谢谢两位老师,但是,我发现上面代码只能适用于表A,而不能同时适用于表B,即只能在一个表上用,我的本意是如果在任意表中,在输入的行中,如果必填的A列、B列、C列,没有填完,则不可进入下一行进行数据输入,如果进入下一行进行数据输入就给能提醒“请必忘记上一行必填数据”,还望老师帮忙修改一下代码,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/21 20:53:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
ZHX88863808
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2015/9/21 21:23:00 [只看该作者]

谢谢老师,因水平问题,我还是肯请老师帮我按上面的想法写个含提示的代码,这样对操作人员会更好些,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2015/9/21 21:40:00 [只看该作者]

老师:太棒了,谢谢您!!!

 回到顶部