计算字段不做做Filter吗?(50分)

  • 主题发起人 主题发起人 oceanwave
  • 开始时间 开始时间
O

oceanwave

Unregistered / Unconfirmed
GUEST, unregistred user!
由于查询中的某字段判断条件太复杂,而我的数据库是ACCESS(无法用存储过程),所以
只好用Filter,但屡屡出错,后来用Showmessage一看,说是该字段无法做Filter。
大侠给个建议吧!
 
用OnFilterRecord事件来做就是了!
 
只能用楼上的方法.
但速度.. .你试试吧:)
 
好像没有更好的办法了除非用SQL
 
计算字段不能用filter,趁早改用query,我就遇到过这个问题。
 
因为我的数据库是ACCESS的,所以原先在SQL SERVER中可以三百多行代码的存储过程实现的
查询筛选,在ACCESS中我不得不用计算字段来实现。而其中有两个字段是“旧规则超期时间
”和“新规则超期时间”,这两个字段是通过相当复杂的规则计算出来的。两上字段的筛选
条件是相似的,都为“超期”,“未超期”,“所有”,而在选“超期”后,我用了一个
COMBOBOX来选择等式“=,<,<=,>,>=,<>”,还有一个EDIT来接受超期的数值。界面如下:
┌-─────────────────────────┐
│ ┌旧规则-─┐ 超期时间 ┌旧规则-─┐ 超期时间 │
│ │○超期 │ ┌─┬─┐ │○超期 │ ┌─┬─┐ │
│ │○未超期 │ │= │↓│ │○未超期 │ │= │↓│ │
│ │○所有 │ └─┴─┘ │○所有 │ └─┴─┘ │ 
│ │ │ ┌───┐ │ │ ┌───┐ │
│ └────-┘ └───┘ └────-┘ └───┘ │
│ ┌────┐      ┌────┐       │
│ │确定筛选│      │取消筛选│       │
│ └────┘      └────┘       │
└────────────────────────-─┘
如此如何解决呢?看来问题复杂了,加50分,决不食言!

 
不好意思,错了,右边应该是“新规则”,呵呵;)
 
其实在Access中也可以有存储过程的,

在Access中建带参数的查询,此查询在Delphi中可用存储过程联接。
在Access中的查询有好几种类型,都可以用存储过程联接,可试试
 
问题解决了,我把计算字段做为数据字段,针对计算发生的条件,做了相关字段的ONCHANGE
事件。
多谢大家的帮助了
 

Similar threads

回复
0
查看
866
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部