【发布时间】:2023-04-08 23:35:01
【问题描述】:
这是最终的,但已经不是过滤器
任何人都知道我的过滤器问题
begin
adoquery1.SQL.CLEAR;
adoquery1.SQL.Add('select * FROM gunsonu ');
adoquery1.SQL.Add('where TARIH like :TRH');
adoquery1.Parameters.ParamByName('TRH').Value:=(PlannerDatePicker1.text);
for i := 0 to form3.ListBox1.Items.Count-1 do
adoquery1.SQL.Add(' and VLIM <> '+QuotedStr(form3.ListBox1.items[i]));
end;
adoquery1.Open;
frxReport1.ShowReport(true);
【问题讨论】:
-
当你说“不能”时,你的意思是你的代码执行了,但是 adoquery1 没有返回任何行?最相似的原因是您的列表框项目不包含任何 '%' 通配符。如果没有,它的工作原理是你有一个“=”符号而不是“like”。
-
此外,如果您尝试与列表框项目匹配的列是字符列,则应将“form3.ListBox1.items[i]”用“QuotedStr()”括起来
-
我喜欢它,但它已经过滤为空 :( begin adoquery1.SQL.CLEAR; adoquery1.SQL.Add('select * FROM gunsonu '); adoquery1.SQL.Add('where TARIH像 :TRH'); adoquery1.Parameters.ParamByName('TRH').Value:=(PlannerDatePicker1.text); for i := 0 to form3.ListBox1.Items.Count-1 做 adoquery1.SQL.Add(' 和VLIM = '+ QuotedStr(form3.ListBox1.items[i])); end; adoquery1.Open; frxReport1.ShowReport(true); end;
-
请将该代码添加到您的问题中,它应该在其中,而不是在评论中。并且,在列表框中显示值,因为看起来您正在尝试将数据行与 VLIM 列中的几个不同值进行匹配(因为 ' 和 '),这可能不是您想要的。
-
所以马丁娜!你有什么想法,我有问题,我无法解决它
标签: sql-server delphi filter listbox