本人向将几个数据表中的数据同时显示在一个dbgrid中,然后能完成江修改后的数据能分别保存到各自的数据表中。请问如何解决?
另:怎么对显示在dbgrid中的数据的其中的一被选择行的一个字段进行操作啊?3号就要结果了,请各位大虾赐教!

解决方案 »

  1.   

    先把dbgrid的字段设好,然后在程序中加上类似字段:
              with datamodule1.Query22 do
                begin
                  close;
                  sql.Clear;
                  sql.Add('select t_Depart_name.depart_id,t_Depart_name.department,t_level.level_name,t_depart_name.re');
                  sql.Add(' from t_depart_name,t_level');
                  sql.Add(' where t_depart_name.depart_level=t_level.affair_level');
                  sql.Add(' order by depart_id');
                  prepare;
                  open;
                end;
    注意select的字段名要和dbgrid的字段相符合,最好加上表名,以免出现重复。
    先看看,希望帮得上忙,有什么问题大家再研究一下!
      

  2.   

    还有要看你是怎样的同时显示,,如果是列组合,,以上就 可以了,如果是行组合的话,,我有个方法,,不知道能不能行,,参考一下,,with adoquery1 do 
     begin
       close;
       clear;
       sql.add('select Field1,Field2 ... from tablename ')
       sql.add(' union all');
       sql.add(' select Field1,Field2... from tablename_2')
       open
     end; 然后直接操作即可
      

  3.   

    其实sql复杂起来可以很复杂,我写了一段sql就有差不多50行,看你具体要求罗!
      

  4.   

    显示的问题不大,我的主要问题是将在dbgrid中修改后的数据分别保存到各自的表中。我想着涉及到对dbgrid中的某一行的特定的字段进行操作,请问如何操作啊?
      

  5.   

    怎么对显示在dbgrid中的数据的其中的一被选择行的一个字段进行操作啊?
    IF QUERY1.FILEDBYNAME('FIELD1').ASSTRING='XXXX1' TEHN //當前的記錄行
       BEGIN
         IF DBGRID1.SELECTFIELD='XXXX2' THEN              //當前的列
            BEGIN
            ....
            END;
       END;
    這樣你就能找到你所需要修改的一被选择行的一个字段
      

  6.   

    我觉得在dbgrid直接修改不太好。
      

  7.   

    你在这个过程中试试,
    procedure TForm1.Query1AfterScroll(DataSet: TDataSet);
    beginend;
      

  8.   

    直接就可以修改,然后就可以存到数据库中了。
    显示不同表中的数据可以通过sql语句来实现。