各位大哥,我用的是ACCESS+DELPHI表一,用的DBGRID显示的表一,MEMO显示的表二
表一
ID USER DATA
表二
USER AGEE
如何编码当点击DBGRID1的不同记录时,如果表二的USER和表一的USER相等 ,就在MEMO1中显示表二的相应的记录

解决方案 »

  1.   

    2、Locate定位两种方法都可以。
      

  2.   

    也可以:
    select * from 表1 left join 表2 on 表1.user = 表2.userMEMO1绑定到表2的字段
      

  3.   

    用DebugXP(NULL)的方法啊。
    sql语句用DebugXP(NULL)的则。
    在dbgrid的ONcellclick事件中写
    memo1.text:=adoquery1.fieldbyname('agree').asstring;
      

  4.   

    在dbgrid的ONcellclick事件中写
    adoquery2.Locate('USER',adoquery1.fieldbyname('user').asstring,[loPartialKey]);
      

  5.   

    各位高手我没说清楚,表一是线路编号 线路名称 起点 终点
                        表二是保护情情:线路编号 线路名称 起点,终点,定值,参数
    我用的是ADOQUERY.表一我己显示在DBGRID中了,现在我想在MEMO中显示相应的保护记录,即DBGRID指在那条记录,我在MEMO中就显显示它的保护情况。请各位不吝赐教。我刚学,最好给一段代码,让我参考一下
      

  6.   

    在dbgrid的ONcellclick事件中写
    Memo1.Lines.Clear;
    if adoquery2.Locate('线路编号',adoquery1.fieldbyname('线路编号').asstring,[loPartialKey]) then
    begin
        Memo1.Lines.Clear;
        Memo1.Lines.Add(adoquery2.FieldByName('线路编号').AsString);
        Memo1.Lines.Add(adoquery2.FieldByName('保护情况').AsString);
        ............
    end;
      

  7.   

    to gzmhero(hihihi) 
    谢谢你。己实现。但是如何用游标键中“上键,下键也实现”呢,马上给分
      

  8.   

    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
        if (Key=VK_Up) or (Key=VK_Down) then
        begin
          Memo1.Lines.Clear;
          if adoquery2.Locate('线路编号',adoquery1.fieldbyname('线路编号').asstring, [loPartialKey]) then
          begin
             Memo1.Lines.Clear;
             Memo1.Lines.Add(adoquery2.FieldByName('线路编号').AsString);
             Memo1.Lines.Add(adoquery2.FieldByName('保护情况').AsString);
             ............
          end;
        end;
    end;
      

  9.   

    select * from 表1 left join 表2 on 表1.user = 表2.user
      

  10.   

    to gzmhero(hihihi现在在DBGRID中有焦点呀,不可以焦点在什么地方,下方MEMO1就显示相应的记录吗,怎 绡代码,急
    快给分了
      

  11.   

    界面上加一个DBEdit1,设置Visible为false,连接到你的adoquery1的‘线路编号'字段,然后在DBEdit1的OnChange事件中写代码:
    if adoquery2.Locate('线路编号',adoquery1.fieldbyname('线路编号').asstring,[loPartialKey]) then
    begin
        Memo1.Lines.Clear;
        Memo1.Lines.Add(adoquery2.FieldByName('线路编号').AsString);
        Memo1.Lines.Add(adoquery2.FieldByName('保护情况').AsString);
        ............
    end;