请教:自定义查询

duola1 2003-09-12 09:41:59
如何实现用户自定义查询?
请详细说明,谢谢!

...全文
43 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
IORILI 2003-09-16
  • 打赏
  • 举报
回复
vb里的
Private Sub Cbo_astoper_LostFocus()
If Me![Cbo_astoper] <> "" Then
astoper = True
If product = True Or jp_oper = True Or jp_cop = True Or jp_dep = True Or stardate = True Or enddate = True Or chn_cop = True Or chn_oper = True _
Or chn_dep = True Or fact_cop = True Or fact_dep = True Or chn_id = True Or pact_status = True Or fact_id = True Or pact_id = True Or pact_name = True Or jp_id = True Then
sql = sql + " and c.vchr_Operater='" & Me![Cbo_astoper] & "'"
Else
sql = sql + " where c.vchr_Operater='" & Me![Cbo_astoper] & "'"
End If
End If
End Sub
IORILI 2003-09-16
  • 打赏
  • 举报
回复
vb里的
Private Sub Cbo_astoper_LostFocus()
If Me![Cbo_astoper] <> "" Then
astoper = True
If product = True Or jp_oper = True Or jp_cop = True Or jp_dep = True Or stardate = True Or enddate = True Or chn_cop = True Or chn_oper = True _
Or chn_dep = True Or fact_cop = True Or fact_dep = True Or chn_id = True Or pact_status = True Or fact_id = True Or pact_id = True Or pact_name = True Or jp_id = True Then
sql = sql + " and c.vchr_Operater='" & Me![Cbo_astoper] & "'"
Else
sql = sql + " where c.vchr_Operater='" & Me![Cbo_astoper] & "'"
End If
End If
End Sub
hmily1688 2003-09-15
  • 打赏
  • 举报
回复
我是用动态数组来搞定的,因为查询时一个表与一个表不同,然后显示给用户中文,我们在程序中翻译成表的字段,再把大于,小于,等于,不小于,不大于,近似于翻译成>,<,=,>=,<=, like 等 ,
代码有点长,给我发E_mail我发给你代码:liutaotao168@163.com
gdwyh 2003-09-15
  • 打赏
  • 举报
回复
sundayzhao(皮皮虾)的办法最好。
ollea 2003-09-15
  • 打赏
  • 举报
回复
同意sundayzhao(皮皮虾) 的
sundayzhao 2003-09-15
  • 打赏
  • 举报
回复
利用数据字典,做一个表,里面存放所有的表的名称,以及字段名称,和中文表述。这样让用户首先选择表,然后再选择字段,最后确定关系。

这样,你根据用户的选择,再从字典表取出相应字段的名称,生成SQL语句即可。
FSU 2003-09-13
  • 打赏
  • 举报
回复
自定义查询首先要让用户可以选择查询条件,然后通过所选择的查询条件来构建SQL语句!
coolfilm 2003-09-13
  • 打赏
  • 举报
回复
我知道不过我现在在外面!以后我会贴出来!
newnewworm 2003-09-12
  • 打赏
  • 举报
回复
将字段和值分开或者综合使用可以了
利用参数进行动态查询
duola1 2003-09-12
  • 打赏
  • 举报
回复
这样不好,我想要的是一个通用的条件可变的查询模块。由用户自己来定义查询条件。
vicky__gao 2003-09-12
  • 打赏
  • 举报
回复
你把各种条件连接起来不就得了!举例说明:
var
mysql:string;
iswhere:boolean;
begin
......
query1.close;
query1.sql.clear;
mysql:='select * from mytable';
iswhere:=false;
if edit1.text<>'' then
begin
mysql:=mysql+' where myfield1='''+Edit1.text+'''';
iswhere:=true;
end;
if edit2.text<>'' then
if iswhere then
mysql:=mysql+' and myfield2='''+Edit2.text+''''
else
mysql:=mysql+' where myfield2='''+Edit2.text+'''';
....
query1.sql.add(mysql);
query1.open;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧