if query1.active then query1.close; query1.sql.clear; tempstr:='select * from 表名 'if Trim(ComboBox1.Text)='学历' then tempstr:=tempstr+' order by xueli 'if Trim(ComboBox1.Text)='姓名'then tempstr:=tempstr+' order by xingming ' query1.sql.add(tempstr) query1.open; 这样就可以了啊!
if Trim(ComboBox1.Text)='学历' then adoquery1.indexfieldnames='xueli' else if Trim(ComboBox1.Text)='姓名' then adoquery1.indexfieldnames='xingming' ;
var queryStr:String; begin if Trim(ComboBox1.Text)='学历' then queryStr:='xueli' else if Trim(ComboBox1.Text)='姓名' then queryStr:='xingming' ; aqry.SQL.Text:='select * from yourTable order by '''+queryStr+''''; aqry.open; end;
添加 ComboBox1的OnChange事件: procedure TForm1.ComboBox1Change(Sender: TObject);begin query1.sql.clear; query1.sql.add('select * from 表名 '); if Trim(ComboBox1.Text)='学历' then query1.sql.add('order by xueli '); if Trim(ComboBox1.Text)='姓名'then query1.sql.add('order by xingming '); query1.close; query1.open;end;
姓名if ComboBox1.ItemIndex=0 then
AdoQuery1.Sort:='学历 DESC' //按学历来排序,数据表中的字段假设为“学历”
else
AdoQuery1.Sort:='姓名 DESC' //按学历来排序,数据表中的字段假设为“姓名”
query1.close;
query1.sql.clear;
tempstr:='select * from 表名 'if Trim(ComboBox1.Text)='学历' then tempstr:=tempstr+' order by xueli 'if Trim(ComboBox1.Text)='姓名'then tempstr:=tempstr+' order by xingming '
query1.sql.add(tempstr)
query1.open;
这样就可以了啊!
1.用两个COMBOX,一个存汉字,一个存相对应的字段,显示汉字的那个,用户下拉时两个一起变动.
2.使用将汉字与字段写成一个Class(这个CLASS只有这二个属性),增加至TComobox.item.addobject(Class)
adoquery1.indexfieldnames='xueli'
else
if Trim(ComboBox1.Text)='姓名' then
adoquery1.indexfieldnames='xingming' ;
queryStr:String;
begin
if Trim(ComboBox1.Text)='学历' then
queryStr:='xueli'
else if Trim(ComboBox1.Text)='姓名' then
queryStr:='xingming' ;
aqry.SQL.Text:='select * from yourTable order by '''+queryStr+'''';
aqry.open;
end;
1、在窗体show的时候按照 :显示列名+ " |" + 字段名的格式添加到combox的项目中。注意空格多是为了将后面的英文字段名隐藏起来。
2、选择combox的项目时,用pos函数在combox的text中找"|"(也可以用别的字符,只要容易标记就行了),找到后,拷贝特殊字符后面的字符串。
3、table.sort = 拷贝出来的字符串这种发自很好的,俺一直这样用
procedure TForm1.ComboBox1Change(Sender: TObject);begin
query1.sql.clear;
query1.sql.add('select * from 表名 ');
if Trim(ComboBox1.Text)='学历' then
query1.sql.add('order by xueli ');
if Trim(ComboBox1.Text)='姓名'then
query1.sql.add('order by xingming ');
query1.close;
query1.open;end;