以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]动态合成表达式  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=94207)

--  作者:铜豆
--  发布时间:2016/12/18 20:08:00
--  [求助]动态合成表达式
If e.DataCol.Name = "搜索引擎" Then 
    e.DataRow("后台_展现") = DataTables("百度搜索引擎").Compute("Sum(展现)", "[日期] = #" & e.NewValue & "#")
    e.DataRow("后台_点击") = DataTables("百度搜索引擎").Compute("Sum(点击)",  "[日期] = #" & e.NewValue & "#")
End If


错误提示
错误所在事件:表,搜索引擎, DataColChanged
详细错误信息:
调用的目标发生了异常。
该字符串未被识别为有效的 DateTime。有一个从索引 0 处开始的未知字。


--  作者:有点蓝
--  发布时间:2016/12/19 8:50:00
--  
"搜索引擎"是日期列吗,e.NewValue是"搜索引擎"的值,是否应该这样

If e.DataCol.Name = "某日期列" Then 
    e.DataRow("后台_展现") = DataTables("百度搜索引擎").Compute("Sum(展现)", "[日期] = #" & e.NewValue & "#")
    e.DataRow("后台_点击") = DataTables("百度搜索引擎").Compute("Sum(点击)",  "[日期] = #" & e.NewValue & "#")
End If


If e.DataCol.Name = "搜索引擎" Then 
    e.DataRow("后台_展现") = DataTables("百度搜索引擎").Compute("Sum(展现)", "[日期] = #" & e.DataRow("某日期列") & "#")
    e.DataRow("后台_点击") = DataTables("百度搜索引擎").Compute("Sum(点击)",  "[日期] = #" &  e.DataRow("某日期列") & "#")
End If


If e.DataCol.Name = "搜索引擎" Then 
    e.DataRow("后台_展现") = DataTables("百度搜索引擎").Compute("Sum(展现)", "[搜索引擎] = \'" & e.NewValue & "\'")
    e.DataRow("后台_点击") = DataTables("百度搜索引擎").Compute("Sum(点击)",  "[搜索引擎] = \'" & e.NewValue & "\'")
End If
[此贴子已经被作者于2016/12/19 8:50:06编辑过]

--  作者:铜豆
--  发布时间:2016/12/19 9:59:00
--  


老师搜索引擎是字符列,日期才是日期列,我要同时满足日期和搜索引擎时就就行统计,上述只满足一个条件
If e.DataCol.Name = "搜索引擎" Then 
    e.DataRow("后台_展现") = DataTables("百度搜索引擎").Compute("Sum(展现)", "[日期] = #" & e.NewValue & "# And  "[搜索引擎] = \'" e.NewValue &"\' ")
    e.DataRow("后台_点击") = DataTables("百度搜索引擎").Compute("Sum(点击)",  "[日期] = #" & e.NewValue & "# And "[搜索引擎] = \'" e.NewValue &"\' ")
End If
以上是我写的,但是无法执行

--  作者:有点色
--  发布时间:2016/12/19 10:26:00
--  
If e.DataCol.Name = "搜索引擎" Then 
    e.DataRow("后台_展现") = DataTables("百度搜索引擎").Compute("Sum(展现)", "[日期] = #" & e.DataRow("日期") & "# And  "[搜索引擎] = \'" e.DataRow("某日期列") &"\' ")
    e.DataRow("后台_点击") = DataTables("百度搜索引擎").Compute("Sum(点击)",  "[日期] = #" & e.DataRow("日期") & "# And "[搜索引擎] = \'" e.DataRow("搜索引擎") &"\' ")
End If

--  作者:铜豆
--  发布时间:2016/12/19 12:36:00
--  
Compute("Sum(展现)", "[日期] = #" & e.NewValue & "# And  "[搜索引擎] = \'" e.NewValue &"\' ")=Compute("Sum(展现)", "[日期] = #" & e.DataRow("日期") & "# And  "[搜索引擎] = \'" e.DataRow("某日期列") &"\' ")
Compute("Sum(点击)",  "[日期] = #" & e.NewValue & "# And "[搜索引擎] = \'" e.NewValue &"\' ")=Compute("Sum(点击)",  "[日期] = #" & e.DataRow("日期") & "# And "[搜索引擎] = \'" e.DataRow("搜索引擎") &"\' ")
老师两者之间表达式不是等效吗?为什么图片点击可在新窗口打开查看换成你这样才能用?难两者有什么条件限制吗?不同的情况用不同的代码

--  作者:有点色
--  发布时间:2016/12/19 14:22:00
--  

e.newvalue的值,是你修改单元格后,得到的值。

 

比如,你修改了 搜索引擎 列,那么e.newvalue就是你修改后的值,它,不是日期列的值。