procedure Tmanage.DBGrid1CellClick(Column: TColumn);
begin
selected:=dbgrid1.SelectedField.AsString;
showmessage(''+selected+'');
adoquery2.Close;
adoquery2.SQL.Clear;  
adoquery2.SQL.Text:='select * from 案卷 where 项目名称 like '+selected+'';
adoquery2.Open;
end;
我是想在一个form里有两个DBGrid,初始化的时候DBGrid1种的数据正常显示出来,第二个DBGrid的数据在选中DBGrid1中某一行的时候显示。我想当鼠标点击项目名称这一列时按这个单元格中的数据去查找数据然后在DBGrid2中显示。请问这样为什么不行?大侠们又没有更好的方法?谢谢!!!中秋快乐!

解决方案 »

  1. 你有没有把grid2的datasource分别指向query2?否则是grid无法显示数据的.
      

  2. var a:string;
    begin
    adoquery1对应DBGRID1 adoquery2对DGBRID2
    a:=adoquery1.fieldbyname('项目名称').vause;adoquery2.Close;
    adoquery2.SQL.Clear;  
    adoquery2.SQL.Text:='select * from 案卷 where 项目名称 like '+a+'';
    adoquery2.Open;
      

  3. adoquery2.SQL.Text:=format('select * from 案卷 where 项目名称 like ''%s'' ',[a]);
      

  4. 各位大侠,我都试过了,还是不行啊,当我选中DBGrid1中项目名称某个数据时,显示错误“列名‘****’无效”,****是该行项目名称中的数据值。请各位大侠帮忙。谢谢!
      

类似问题 »