问一下,你的a1 a2 a3是列还是行?
看上去象是指的列。如果是列的话,就可以用Tfield的visible属性来控制就行了。
以下的语句经调试通过
procedure TForm1.button1Click(Sender: TObject);
var i:integer;
find:boolean;
begin
find:=false;
for i:=0 to query1.FieldCount-1 do
if not (query1.Fields[i].FieldName=edit1.Text) then
query1.Fields[i].visible:=false
else
begin
find:=true;
query1.Fields[i].visible:=true;
end;
if not find then
for i:=0 to query1.FieldCount-1 do
if query1.Fields[i].FieldName[1]=edit1.Text then
query1.fields[i].Visible:=true;
end;
不过要注意大小写,这里必须大小写一样才行,你想忽略大小写的话,自己处理一下就行了。