Foxtable(狐表)用户栏目专家坐堂 → [求助]检查所有表中单元格值不得为空如何写代码


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

主题:[求助]检查所有表中单元格值不得为空如何写代码

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]检查所有表中单元格值不得为空如何写代码  发帖心情 Post By:2014/12/16 15:34:00 [只看该作者]

如果用户增加一条或多条记录,在他保存退出前要求整表所有的格子不得空着,如果有空值,则不得保存或不保存退出,因为这些记录在后续被别的表引用,如果出现空值则会导致程序出错,请老师放段代码上来,我是写了半天怎么也达不到效果,谢谢老师!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/16 15:39:00 [只看该作者]

Dim flag As Boolean = False
For Each dr As DataRow In DataTables("表A").DataRows
    For Each dc As DataCol In DataTables("表A").DataCols
        If dr.IsNull(dc.Name) Then
            msgbox("不行")
            flag = True
            Exit For
        End If
    Next
    If flag Then Exit For
Next

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/12/16 15:42:00 [只看该作者]

能改的高级一点,告诉用户第一个不满足条件的所在单元格位于第几列第几行吗?谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/16 15:44:00 [只看该作者]

Dim flag As Boolean = False
For Each r As Row In Tables("表A").Rows
    For Each c As Col In Tables("表A").Cols
        If r.IsNull(c.Name) Then
            msgbox(r.index + 1 & " " & c.Name)
            flag = True
            Exit For
        End If
    Next
    If flag Then Exit For
Next

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/12/16 15:49:00 [只看该作者]

代码中有一条看不明白:
If flag Then Exit For
用了IF 为什么没有 endif 代码放在命令窗口中执行也没报错,不解!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/16 15:51:00 [只看该作者]

 只有一句的话,可以不写End If
[此贴子已经被作者于2014-12-16 15:51:03编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/12/16 15:52:00 [只看该作者]

IF语句还能这样用?受教了,万分感谢!

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/12/16 22:07:00 [只看该作者]

老师帮我看看此段代码错哪了,我的用意是如果备注列为空,允许保存,其他列为空,弹出提示框并且不得保存。
Dim flag As Boolean = False
For Each r As Row In Tables("原料采购入库通知明细").Rows
    For Each c As Col In Tables("原料采购入库通知明细").Cols
        If r.IsNull("备注") Then
            flag  = False
            Exit For
        ElseIf r.IsNull(c.Name) Then
            msgbox(c.Name & " 列 第" & r.index + 1 & "行"   & " 未输入")
            flag = True
            Exit For
        End If
        
    Next
    If flag Then
        Exit For
    Else
        msgbox("执行保存操作")
        Exit For
    End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/16 22:20:00 [只看该作者]

Dim flag As Boolean = False
For Each r As Row In Tables("原料采购入库通知明细").Rows
    If r.IsNull("备注") Then
        Exit For
    End If
    For Each c As Col In Tables("原料采购入库通知明细").Cols
        If r.IsNull(c.Name) Then
            msgbox(c.Name & " 列 第" & r.index + 1 & "行"   & " 未输入")
            flag = True
            Exit For
        End If
    Next
    If flag Then
        Exit For
    End If
   
Next

If flag = False Then
    msgbox("执行保存操作")
End If


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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/12/16 22:31:00 [只看该作者]

不行啊,做了测试,第一行的备注列是空的,同时其他列也有空的,执行这段代码还是执行的保存,上面写的用意表达的不完整,应该是除备注列外,其他任何列有空值,均不得保存,请老师再帮忙改下,谢谢!

 回到顶部
总数 13 1 2 下一页