以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  记录不为空控制  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=115711)

--  作者:nxqtxwz
--  发布时间:2018/3/13 9:37:00
--  记录不为空控制
请问老师,想让新增加记录的每一列都必须填写信息,如果有空格则提醒填写完整代码如何写呢?
--  作者:有点甜
--  发布时间:2018/3/13 9:43:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/0644.htm

 

 


--  作者:有点甜
--  发布时间:2018/3/13 9:44:00
--  
一般是在beforeSaveDataRow事件处理的,检测要保存的行,每一列是否都赋值了,没有赋值就提示,不保存数据。
--  作者:nxqtxwz
--  发布时间:2018/3/13 15:38:00
--  
老师,就是这个意思,可代码怎么写呢?
--  作者:有点甜
--  发布时间:2018/3/13 15:56:00
--  
以下是引用nxqtxwz在2018/3/13 15:38:00的发言:
老师,就是这个意思,可代码怎么写呢?

 

beforeSaveDataRow

 

方法一:

 

If e.DataRow.IsNull("第一列") orElse e.DataRow.Isnull("第二列") Then

    msgbox("第一第二列不能为空")

    e.cancel = true

End If

 

方法二:

 

For each dc As DataCol in e.DataTable.DataCols

    If e.dataRow.IsNull(dc.name) Then

        msgbox(dc.name & " 不能为空")

        e.cancel = true

        exit for

    End If

Next


--  作者:nxqtxwz
--  发布时间:2018/3/13 16:20:00
--  

如果把这个代码写在增加记录按钮的事件中怎么写呢?下面的代码显示错误怎么办。

If e.DataRow.IsNull("物品名称") OrElse e.DataRow.Isnull("单位") OrElse e.DataRow.Isnull("规格型号") OrElse e.DataRow.Isnull("物品用途") OrElse e.DataRow.Isnull("申报人")OrElse e.DataRow.Isnull("数量") OrElse e.DataRow.Isnull("预估单价")  Then
    msgbox("请您填写完整申报单")
    e.cancel = True
Else
Tables("物品申报").AddNew()
End If


--  作者:有点甜
--  发布时间:2018/3/13 16:51:00
--  

改成

 

Dim r As Row = Tables("物品申报").Current
If r.IsNull("物品名称") OrElse r.Isnull("单位") OrElse r.Isnull("规格型号") OrElse r.Isnull("物品用途") OrElse r.Isnull("申报人")OrElse r.Isnull("数量") OrElse r.Isnull("预估单价")  Then
    msgbox("请您填写完整申报单")
Else
    Tables("物品申报").AddNew()
End If