procedure TF_s.Button1Click(Sender: TObject);
 var
mysql:string; begin
 
 mysql:='select 课程信息表.课程编号,课程信息表.课程名称,课程信息表.学期,课程信息表.学分,课程信息表.开课系别,教师授课信息表.姓名 as 授课教师,教师授课信息表.性别,教师授课信息表.职称,课程信息表.上课时间,课程信息表.上课地点,课程信息表.课程性质';
  ADOQuery1.close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(mysql);
  ADOQuery1.SQL.Add('from 课程信息表,教师授课信息表 where 课程信息表.课程编号=教师授课信息表.课程编号 ');
  if combobox1.text='课程编号' then
          begin
          ADOQuery1.SQL.Add('and 课程编号 like ''%'+edit1.Text+'%''');
          end
  else…………运行时不管combobox1里面课程编号是多少都显示了所有课程编号的信息求助!!!!

解决方案 »

  1.   

    ADOQuery1.SQL.Add('and 课程信息表.课程编号 like ''%'+edit1.Text+'%''');你跟踪看SQL语句是不是过滤了啊
      

  2.   

    不太可能吧,sql语句没点问题
    你eitd1.text是不是没输东西呀
      

  3.   

    输入了啊 会不会和COMBOBOX的属性设置有关系??
      

  4.   

    ADOQuery1.SQL.Add('and 课程编号 like ''%'+edit1.Text+'%''');你为什么不用变量赋值的办法来解决??
      

  5.   

    试试如下代码:  mysql:='select 课程信息表.课程编号,课程信息表.课程名称,课程信息表.学期,课程信息表.学分,课程信息表.开课系别,教师授课信息表.姓名 as 授课教师,教师授课信息表.性别,教师授课信息表.职称,课程信息表.上课时间,课程信息表.上课地点,课程信息表.课程性质';
      
      ADOQuery1.close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add(mysql);
      ADOQuery1.SQL.Add(' from 课程信息表,教师授课信息表 where 课程信息表.课程编号=教师授课信息表.课程编号 ');
      if combobox1.text='课程编号' then
      begin
         ADOQuery1.SQL.Add('and 课程编号 like Quotedstr('%'+edit1.Text+'%'));
      end
      else
      

  6.   

    ADOQuery1.SQL.Add('and 课程编号 like ' + Quotedstr('%'+edit1.Text+'%'));