以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]初学者求教两段代码疑问 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8989) |
-- 作者:ddlzq -- 发布时间:2011/1/11 16:39:00 -- [求助]初学者求教两段代码疑问 各位老师:为什么我写了两段代码,表面看执行效果一致,但只有代码一好用呢?写了内容就记录,清除内容记录消失,而代码二就不行呢? 初学者求教。
代码一(好用)如果部门主管填写审批意见,就记录审批人和审批时间,如果没有内容,审批记录为空 ---------------------------------------- If e.DataCol.Name = "审批内容_部门主管意见" Then ‘---------------------------- 代码二(不好用)如果部门主管填写过审批意见就记录审批人和审批时间,否则记录就为空 If e.DataCol.Name = "审批内容_部门主管意见" Then |
-- 作者:blackzhu -- 发布时间:2011/1/11 16:59:00 -- 以下是引用ddlzq在2011-1-11 16:39:00的发言:
各位老师:为什么我写了两段代码,表面看执行效果一致,但只有代码一好用呢?写了内容就记录,清除内容记录消失,而代码二就不行呢? 初学者求教。
代码一(好用)如果部门主管填写审批意见,就记录审批人和审批时间,如果没有内容,审批记录为空 ---------------------------------------- If e.DataCol.Name = "审批内容_部门主管意见" Then ‘---------------------------- 代码二(不好用)如果部门主管填写过审批意见就记录审批人和审批时间,否则记录就为空 If e.DataCol.Name = "审批内容_部门主管意见" Then 根据这个你自己修改代码顺序.关键是执行代码的顺序,先执行什么再执行什么. |
-- 作者:czy -- 发布时间:2011/1/11 17:03:00 -- 用If e.NewValue IsNot Nothing Then吧 |
-- 作者:ddlzq -- 发布时间:2011/1/11 19:55:00 -- 感谢楼上两位老师指导,我学习下... |
-- 作者:lmk -- 发布时间:2011/1/11 20:16:00 -- 好好琢磨一下Null的含意,Null严格来说是表示内容不确定的意思,是一种特殊意义上的空值,因此判断单元格是否有内容应该用:isnull(),而不能用is nothing 或isnot nothing,确实有点不好理解,只能记住规则啦。 |
-- 作者:ddlzq -- 发布时间:2011/1/11 22:21:00 -- 谢谢楼上老师指点,待我好好测试研究下。 |
-- 作者:狐狸爸爸 -- 发布时间:2011/1/12 8:49:00 -- 切不可用 e.DataRow("列名") Is Nothing 来判断某列的值是否为空,因为对于数值列,如果值为空,e.DataRow("列名")返回的是0,如果是日期列,则返回#01/01/0001#,显然这都不是空值。 |
-- 作者:ddlzq -- 发布时间:2011/1/12 8:55:00 -- 以下是引用狐狸爸爸在2011-1-12 8:49:00的发言:
切不可用 e.DataRow("列名") Is Nothing 来判断某列的值是否为空,因为对于数值列,如果值为空,e.DataRow("列名")返回的是0,如果是日期列,则返回#01/01/0001#,显然这都不是空值。 哦,原来如此啊...看来真要好好学习了,不然抄出来的代码总会不听话,呵呵,谢谢狐爸的一语点题。 |