以文本方式查看主题

-  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=113231)

--  作者:dengk03
--  发布时间:2018/1/11 15:08:00
--  导出表格时遇到的问题
导出一个已经被筛选过的表格,使用ex.Filter = Tables().filter命令.
别的筛选条件时导出都是正常的,只有当筛选条件为日期时,导出就不正确了。
例如导出2017-1-1之后的数据,messagebox显示此时的tables.filter的内容为  日期 >= \'2017-01-01\' 
但是实际导出的excel表为空的。
我用的sql数据库,出这个问题的原因是不是导出成excel的话filter应该写成##的形式?还是别的什么原因?
有没有什么办法可以解决这个问题。

--  作者:有点甜
--  发布时间:2018/1/11 15:35:00
--  

合成的日期的条件,要用##的,不能用\'\'的,如 日期 >= #2017-01-01#


--  作者:dengk03
--  发布时间:2018/1/11 15:46:00
--  
那也就是说我不能用
    ex.Filter = table().filter
这个命令了?
有什么代码恩能够解决我这个问题?

--  作者:dengk03
--  发布时间:2018/1/11 16:16:00
--  
我想了个土办法,判断若filter中包含日期,则自动将单引号替换为#。
--  作者:有点甜
--  发布时间:2018/1/11 16:19:00
--  
以下是引用dengk03在2018/1/11 15:46:00的发言:
那也就是说我不能用
    ex.Filter = table().filter
 

 

你设置tables("").Filter的时候,如果是日期列,请改成##,不要用单引号。比如合成这样的条件

 

第一列 = \'123\' and 日期 >= #2017-01-01# and 第二列 = \'456\'

 

如果需要加载等等,你可以把#替换成\',如 tables("").filter.Replace("#", "\'")