我写了个小程序...
我想点过确定后.把dbgird 里面的仓库代码我点中的代码放入至查找前的商店代码中.应该怎么加?因为edit1我不会加.我用memo1代替.就是(查找)前面的框只是memo1..........我这样写
form1.memo1.Lines.Add(chaxun2.FieldByName('仓库代码').AsString);
代码是可以放至但是查询却出不来了.是不是应该dbgird里面的仓库代码后面有空格的原因?
我查询是这样写的.
procedure TForm1.Button3Click(Sender: TObject);
var hh,kh,ck:string;begin
  hh:=edit4.Text;  ck:=memo1.Lines.Text;  if hh='' then
  begin
  application.MessageBox('请输入商品代码!','错误',mb_ok);
  edit4.SetFocus;
  end else
  if ck='' then
  begin
    application.MessageBox('请输入商店代码!','错误',mb_ok);
    memo1.SetFocus;
    end else
begin
    chaxun.SQL.Clear;
chaxun1.SQL.Add('select shangpin.spdm as 商品代码,sj1 as 原价,je5 as 现价 from shangpin');
chaxun1.SQL.Add('left join (select * from yangxiaojie where khdm like ''%'+ck+'%'' and spdm like ''%'+hh+'%'') as b');
chaxun1.SQL.Add('on shangpin.spdm=b.spdm where shangpin.spdm like ''%'+hh+'%''');
chaxun1.Close;
chaxun1.Open;
   end;
请高手帮我解答下.谢谢

解决方案 »

  1.   

    最好是不用edit.memo....改用下面的控件.谢谢啦.
      

  2.   

    Edit.text:= chaxun2.FieldByName('仓库代码').AsString;
      

  3.   


    cxButtonEdit1.Text:=chaxun2.FieldByName('仓库代码').AsString;
    -------------------  hh:=Trim(edit4.Text);   ck:=Trim(cxButtonEdit1.Text);
      

  4.   

    试试
    with chaxun do
    begin
      Close; //放前面
      SQL.Clear;  
      SQL.Add('select shangpin.spdm as 商品代码,sj1 as 原价,je5 as 现价 from shangpin '); 
      SQL.Add('left join (select * from yangxiaojie where khdm like '''+ '%'+ck+'%'+''' and spdm like '''+'%'+hh+'%'+''') as b'); 
      SQL.Add('on shangpin.spdm=b.spdm where shangpin.spdm like '''+'%'+hh+'%''');  
      Open; 
    end; 注意表名和left join 间的空格
    不行的话,在窗体暂时放一memo,memo1.text:= chaxun.SQL.Text;
    观察语句错在什么地方
      

  5.   

    RoverX 的按你在三楼的方法就已经出来了.谢谢.我还想知道.当我双击dbgird中的某一个代码.比如仓库明称下的'南京专卖店'或仓库代码下的D11023
    也会出现在跟确定一样的情况.
    Edit.text:= chaxun2.FieldByName('仓库代码').AsString;
    请问怎么实现?
      

  6.   

    双击事件中处理:procedure TForm1.DBGrid1DblClick(Sender: TObject);
    begin
        Button3Click(Sender);
    end;
      

  7.   

    Edit.text:= chaxun2.Fields(DBGrid1.SelectedIndex).AsString;试试