外部表根据时间过滤应该如何设置?
例如某外部数据只加载三个月内的数据:
下面这公式怎么设置都不行啊...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) & "#"
真的可以吗?
为何我的报错?是否因为多层表头的原因?
此主题相关图片如下:001.jpg
[此贴子已经被作者于2009-2-2 19:03:36编辑过]
哈哈,老兄还没清楚什么场合才能用代码啊。
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语句
原来这么麻烦........where 后面跟着的是逻辑列就没问题...
Select All * From [表A] Where [结账] = false
这样不会出错,干嘛不在设置外部数据表里增加代码功能...
老爹,第二种方法会造成关联失效!!!
.
此主题相关图片如下:001.jpg
[此贴子已经被作者于2009-2-2 20:02:15编辑过]
应该不会是这个原因,出错后,你看看是不是用于关联的列没有加载
e.Selectstring = "Select All * From [长嘱] Where [开始_开始时间] > #" & date.today.AddMonths(-3) & "#"我的代码.关联列包括在*里啦...
而且关联失效的不只是长嘱表..其他全部失效...
不使用该代码,关联再次正常...
我的表关联只有三个.
住院登记_长嘱
住院登记_临嘱
查询表_设置
全部失效....
[此贴子已经被作者于2009-2-2 20:09:19编辑过]
我也不能理解,从原理来说不应该这样。
除非有实例让我测试一下。
以下是引用狐狸爸爸在2009-2-2 20:10:00的发言:
我也不能理解,从原理来说不应该这样。
除非有实例让我测试一下。
晕,是我搞错了....没加条件...If e.DataTableName
[此贴子已经被作者于2009-2-2 20:25:21编辑过]