以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]选择不同行,判断是否有空值列。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12973)

--  作者:FOTOER
--  发布时间:2011/9/22 17:08:00
--  [求助]选择不同行,判断是否有空值列。

请教:

在选择不同行时,检查本行是否有空值。如果有空值,显示提示框,返回原来的行,空值单元格处于编辑状态。如果不为空,则锁定本行,选择新行。这段代码该怎么写?放到哪个表事件的过程里呢?

下面是我从帮助里面复制修改的代码,放在BeforeSelChange事件过程中。单击新增行,会弹出messagebox。求解!

+++++++++++++++++++++++++++++

\'如果没有输入编号列内容,则禁止选择其它行:
If e.Table.Current IsNot Nothing Then \'如果当前行是数据行,也就是Current属性不为空
    If e.Table.Current.IsNull("A") Or e.Table.Current.IsNull("B") Or e.Table.Current.IsNull("C") Or e.Table.Current.IsNull("D") Or _
       e.Table.Current.IsNull("E") Or e.Table.Current.IsNull("F") Or e.Table.Current.IsNull("G") Or e.Table.Current.IsNull("H") Or e.Table.Current.IsNull("I") Then \'如果A列为空
        If e.NewRange.RowSel <> e.OldRange.RowSel Then \'而且即将选择另一行
            e.Cancel = True \'那么取消操作
            messagebox.show("请检查各项是否有空值,请重新输入!","提示")
            Tables("用户列表").Current.Locked = False
       End If
     Else
       Tables("用户列表").Current.Locked =True

    End If

End If

[此贴子已经被作者于2011-9-22 17:17:41编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/22 17:15:00
--  

意思是换行前,选定行的所有列,都必须输入内容?

 


--  作者:FOTOER
--  发布时间:2011/9/22 17:21:00
--  

是的,请指点啊,谢了。

 


--  作者:FOTOER
--  发布时间:2011/9/22 17:23:00
--  
这样写代码对吗?是否还有更简洁的代码?
--  作者:狐狸爸爸
--  发布时间:2011/9/22 17:36:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目99.table


--  作者:FOTOER
--  发布时间:2011/9/22 17:38:00
--  

下载下来学习下,谢谢!


--  作者:FOTOER
--  发布时间:2011/9/22 17:50:00
--  
学习了。但是增加行的时候会弹出信息框。怎么才能在增加行的时候,不弹出信息框,
--  作者:狐狸爸爸
--  发布时间:2011/9/22 17:58:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目99.rar


--  作者:FOTOER
--  发布时间:2011/9/22 18:15:00
--  
谢谢