以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]检查所有表中单元格值不得为空如何写代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=61647) |
-- 作者:huangfanzi -- 发布时间:2014/12/16 15:34:00 -- [求助]检查所有表中单元格值不得为空如何写代码 如果用户增加一条或多条记录,在他保存退出前要求整表所有的格子不得空着,如果有空值,则不得保存或不保存退出,因为这些记录在后续被别的表引用,如果出现空值则会导致程序出错,请老师放段代码上来,我是写了半天怎么也达不到效果,谢谢老师! |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2014/12/16 15:42:00 -- 能改的高级一点,告诉用户第一个不满足条件的所在单元格位于第几列第几行吗?谢谢! |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2014/12/16 15:49:00 -- 代码中有一条看不明白: If flag Then Exit For 用了IF 为什么没有 endif 代码放在命令窗口中执行也没报错,不解!
|
-- 作者:有点甜 -- 发布时间:2014/12/16 15:51:00 -- 只有一句的话,可以不写End If [此贴子已经被作者于2014-12-16 15:51:03编辑过]
|
-- 作者:huangfanzi -- 发布时间:2014/12/16 15:52:00 -- IF语句还能这样用?受教了,万分感谢! |
-- 作者:huangfanzi -- 发布时间: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 |
-- 作者:有点甜 -- 发布时间:2014/12/16 22:20:00 -- Dim flag As Boolean = False If flag = False Then |
-- 作者:huangfanzi -- 发布时间:2014/12/16 22:31:00 -- 不行啊,做了测试,第一行的备注列是空的,同时其他列也有空的,执行这段代码还是执行的保存,上面写的用意表达的不完整,应该是除备注列外,其他任何列有空值,均不得保存,请老师再帮忙改下,谢谢! |