以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  外部数据表根据时间过滤应该如何设置?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1714)

--  作者:菜鸟foxtable
--  发布时间:2009/2/2 18:34:00
--  外部数据表根据时间过滤应该如何设置?
外部表根据时间过滤应该如何设置?

例如某外部数据只加载三个月内的数据:
下面这公式怎么设置都不行啊...where后面应该如何写?

Select All * From [表A] Where [时间] > #" & date.today.AddMonths(-3) & "#

--  作者:狐狸爸爸
--  发布时间:2009/2/2 18:45:00
--  
当然是可以的:

"Select All * From [表A] Where [时间] > #" & date.today.AddMonths(-3) & "#"

--  作者:菜鸟foxtable
--  发布时间:2009/2/2 19:03:00
--  
以下是引用狐狸爸爸在2009-2-2 18:45:00的发言:
当然是可以的:

"Select All * From [表A] Where [时间] > #" & date.today.AddMonths(-3) & "#"

真的可以吗?
为何我的报错?是否因为多层表头的原因?


图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-2-2 19:03:36编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/2/2 19:17:00
--  
哈哈,老兄还没清楚什么场合才能用代码啊。

1、你可以用DataTable的LoadFilter来设置条件,例如:

DataTables("某表").LoadFilter = "[时间] > #" & date.today.AddMonths(-3) & "#"
DataTables("某表").Load()

2、你可以在BeforeLoadOuterTable事件中动态修改Select语句:

e.Selectstring = "Select All * From [表A] Where [时间] > #" & date.today.AddMonths(-3) & "#"

3 、你可以利用OuterTableBuilder或者QueryBuilder:

Dim q As new OuterTableBuilder
q
.TableName = "订单"
q.TableCaption = "1998年订单"
q.ConnectionName = "Northwind"
q.SelectString = "Select All * From [表A] Where [时间] > #" & date.today.AddMonths(-3) & "#"
q.Build


4、但是不能在定义外部表的时候直接使用代码,SQL中不能直接包含代码的,只能通过代码合成SQL语句

--  作者:菜鸟foxtable
--  发布时间:2009/2/2 19:42:00
--  
图片点击可在新窗口打开查看原来这么麻烦........where 后面跟着的是逻辑列就没问题...
Select All * From [表A] Where [结账] = false
这样不会出错,干嘛不在设置外部数据表里增加代码功能...


老爹,第二种方法会造成关联失效!!!
.
图片点击可在新窗口打开查看此主题相关图片如下:001.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2009-2-2 20:02:15编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/2/2 19:54:00
--  

应该不会是这个原因,出错后,你看看是不是用于关联的列没有加载


--  作者:菜鸟foxtable
--  发布时间:2009/2/2 20:04:00
--  
e.Selectstring = "Select All * From [长嘱] Where [开始_开始时间] > #" & date.today.AddMonths(-3) & "#"

我的代码.关联列包括在*里啦...
而且关联失效的不只是长嘱表..其他全部失效...

不使用该代码,关联再次正常...

我的表关联只有三个.
住院登记_长嘱
住院登记_临嘱
查询表_设置
全部失效....
[此贴子已经被作者于2009-2-2 20:09:19编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/2/2 20:10:00
--  

我也不能理解,从原理来说不应该这样。
除非有实例让我测试一下。


--  作者:菜鸟foxtable
--  发布时间:2009/2/2 20:20:00
--  
以下是引用狐狸爸爸在2009-2-2 20:10:00的发言:

我也不能理解,从原理来说不应该这样。
除非有实例让我测试一下。

晕,是我搞错了....没加条件...If e.DataTableName

[此贴子已经被作者于2009-2-2 20:25:21编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/2/2 20:23:00
--  
好地