以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [讨论] 这两个代码有什么区别? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2511) |
-- 作者:wcs -- 发布时间:2009/4/19 22:41:00 -- [讨论] 这两个代码有什么区别? 这是帮助中的一个例子,跨表计算的: If e.NewValue Is Nothing Then \'如果新值是空白,也就是产品列的内容为空 e.DataRow("单价") = Nothing \'那么清空此行单价列的内容 Else Dim dr As DataRow\'否则在产品表查找同名的产品行,将找到的行赋值给变量dr dr = DataTables("产品").Find("[产品名称] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing e.DataRow("单价") = dr("单价") End If End If End If 我在想,将第二行和第六行的 e.NewValue 换成 e.datarow.(e.datacol) 这样可以运行吗,有什么区别吗? 我记得这个是可以运行的,因为帮助中有类似的例子。 [此贴子已经被作者于2009-4-19 22:56:39编辑过]
|
-- 作者:八婺 -- 发布时间:2009/4/19 23:03:00 -- 应该e.datarow("列名称")来代替吧。 [此贴子已经被作者于2009-4-19 23:03:55编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2009/4/19 23:03:00 -- 如果在Datacolchanged事件中,是一样的。 如果在DatacolChanging事件中,e.NewValue表示即将写入的值,e.DataRow("列名")表示现在的值。 |
-- 作者:wcs -- 发布时间:2009/4/19 23:17:00 -- 哦,有一点点区别! [此贴子已经被作者于2009-4-19 23:17:43编辑过]
|