代码如下:同时访问两个表:“车辆信息”和“车辆日程表”
procedure Taboutbus.Button1Click(Sender: TObject);
var condition:string;
    week:string;
    y,m,d,num:integer;    days: array[1..7] of string;
begin
week:='星期一';
days[1] := '星期日';
days[2] := '星期一';
days[3] := '星期二';
days[4] := '星期三';
days[5] := '星期四';
days[6] := '星期五';
days[7] := '星期六';
num:=0;
condition:='';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select 车辆日程表.星期,车辆日程表.车辆编号,车辆信息.目的地  from 车辆日程表 车辆信息 where ');if checkbox1.Checked then
begin
if(num=1) then
adoquery1.SQL.Add(' and ');
num:=1;
week:=days[DayOfWeek(strtodate(combobox1.Text))];
adoquery1.SQL.Add(' 车辆日程表.星期='+week);
end;if checkbox2.Checked then
begin
if(num=1) then
adoquery1.SQL.Add(' and ');
num:=1;
adoquery1.SQL.Add(' 车辆类型='+combobox2.Text );
end;if checkbox2.Checked then
begin
if(num=1) then
adoquery1.SQL.Add(' and ');
num:=1;
adoquery1.SQL.Add(' 目的地='+combobox3.Text );
end;if checkbox2.Checked then
begin
if(num=1) then
adoquery1.SQL.Add(' and ');
adoquery1.SQL.Add(' 车辆编号='+combobox4.Text );
end;if(num=1) then
adoquery1.SQL.Add(' and ');
adoquery1.SQL.Add(' 车辆日程表.车辆编号=车辆信息.车辆编号' );adoquery1.open;
end;
救命呀,很急!

解决方案 »

  1.   

    if checkbox2.Checked then
    begin
    if(num=1) then三个条件一样?
      

  2.   

    我把代码整理一下,请大家帮忙点出错误在哪?
    procedure Taboutbus.Button1Click(Sender: TObject);
    var condition:string;
        week:string;
        y,m,d,num:integer;    days: array[1..7] of string;
    begin
    week:='星期一';
    days[1] := '星期日';
    days[2] := '星期一';
    days[3] := '星期二';
    days[4] := '星期三';
    days[5] := '星期四';
    days[6] := '星期五';
    days[7] := '星期六';
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('select 车辆日程表.星期,车辆日程表.车辆编号,车辆信息.目的地  from 车辆日程表 车辆信息 where ');
    week:=days[DayOfWeek(strtodate(combobox1.Text))];
    adoquery1.SQL.Add(' 车辆日程表.星期='+week);
    adoquery1.SQL.Add(' and 车辆日程表.车辆编号=车辆信息.车辆编号' );
    adoquery1.open;
    提示的错误信息是:参数星期四没默认值
      

  3.   

    还有combobox1.Text里的内容视今天的日期2005-1-20,即星期四
      

  4.   

    字符串写错了,查找应该是查找'"星期一"',如果你SQL写成'车辆编号='+combobox4.Text 表示进行联接要写成'车辆编号=“'+combobox4.Text+‘”’ 形式,就是把那个查询字符串前后都加上双引号
      

  5.   

    我知道了,下面这句错了,谢谢大家!
    adoquery1.SQL.Add(' 车辆日程表.星期='+week);改为:adoquery1.SQL.Add(' 车辆日程表.星期='''+week+'''');