这样:
……
var m1,m2:currency;
……
m1:=strtocurr(edit1.Text);
m2:=strtocurr(edit2.Text);
with query1 do
begin
    .....
    sqlstr:=sqlstr+' and 上市价格 between :m1 and :m2';
    .....
    parambyname('m1').asstring:=m1;
    parambyname('m2').asstring:=m2;
    .........
    open;
end;

解决方案 »

  1.   

    我的全部代码:
    procedure TForm7.SpeedButton1Click(Sender: TObject);
    var sqlstr:string;
    var m1,m2:currency;
    begin
    datamodule3.PDAtomarQuery1.Close;
    sqlstr:='select * from PDA上市视图';
    if (combobox1.Text<>'所有')and(combobox1.Text<>'') then
        sqlstr:=sqlstr+' where 产品名称 ='''+combobox1.Text+''''
    else
         sqlstr:=sqlstr+' where 产品名称 like ''%''';
    if(combobox2.Text<>'所有')and(combobox2.Text<>'') then
      sqlstr:=sqlstr+' and 生产公司='''+combobox2.Text+'''';
    if(combobox3.Text<>'所有')and(combobox3.Text<>'') then
      sqlstr:=sqlstr+' and 地点名称='''+combobox3.Text+'''';
    if(edit1.Text<>'')and(edit2.Text<>'') then
      begin
        m1:=strtocurr(edit1.Text);
        m2:=strtocurr(edit2.Text);
        sqlstr:=sqlstr+' and 上市价格 between :m1 and :m2';
      end;
    datamodule3.PDAtomarQuery1.SQL.Clear;
    datamodule3.PDAtomarQuery1.SQL.Add(sqlstr);
    datamodule3.PDAtomarQuery1.ExecSQL;
    datamodule3.PDAtomarQuery1.Open;
    end;
    到底哪出了问题??
    是不是STRTOCURR用的不对?
    我用的是ADOQUERY
      

  2.   

    datamodule3.PDAtomarQuery1.SQL.Clear;
    datamodule3.PDAtomarQuery1.SQL.Add(sqlstr);datamodule3.PDAtomarQuery1.parambyname('m1').value:=m1;
    datamodule3.PDAtomarQuery1.parambyname('m2').value:=m2;datamodule3.PDAtomarQuery1.ExecSQL;
    datamodule3.PDAtomarQuery1.Open;
      

  3.   

    就是少了:parambyname('m1').asstring:=m1;
    parambyname('m2').asstring:=m2;两句咯。