selectString1 := contentSelect1;
  selectString2 := contentSelect2;
  if(selectString1='')and(selectString2='') then
  begin
      with application do
          MessageBox('请选择查询条件','提示信息',MB_OK);
      end;
  end
  else if(selectString1='')and(selectString2<>'') then begin /////出错
      if(selectString2='Y') then begin
          With ADOQuery1 do
          begin
          Close;
          SQL.Clear;
          SQL.Add('Select * From jshk');
          SQL.Add(' where 打印状态=''Y'' and 监管项目<>''0037''');
          Open;
          end;
      end else begin
          With ADOQuery1 do
          begin
          Close;
          SQL.Clear;
          SQL.Add('Select * From jshk');
          SQL.Add(' where 打印状态<>''Y'' and 监管项目<>''0037''');
          Open;
          end;
      end;
  end
  else if(selectString1<>'')and(selectString2='') then begin
      With ADOQuery1 do
      begin
      Close;
      SQL.Clear;
      SQL.Add('Select * From jshk');
      SQL.Add('where 管辖单位=:ss and 监管项目<>''0037''');
      Parameters.ParamByName('ss').Value:=selectString1;
      Open;
      end;
  end
  else if(selectString1<>'')and(selectString2='Y') then begin
          With ADOQuery1 do
          begin
          Close;
          SQL.Clear;
          SQL.Add('Select * From jshk');
          SQL.Add(' where 管辖单位=:ss and 打印状态=''Y'' and 监管项目<>''0037''');
          Parameters.ParamByName('ss').Value:=selectString1;
          Open;
          end;
  end
  else begin
          With ADOQuery1 do
          begin
          Close;
          SQL.Clear;
          SQL.Add('Select * From jshk');
          SQL.Add(' where 管辖单位=:ss and 打印状态<>''Y'' and 监管项目<>''0037''');
          Parameters.ParamByName('ss').Value:=selectString1;
          Open;
          end;
  end;
请大侠们帮忙看下哪里有问题,始终在第一个else if处报错,说是 ;expected but else found

解决方案 »

  1.   

    with application do 
              MessageBox('请选择查询条件','提示信息',MB_OK); 
          end; 
    do后面少了begin
    不过这个with do实在是多此一举,呵呵
      

  2.   


    selectString1 := contentSelect1; 
      selectString2 := contentSelect2; 
      if(selectString1='')and(selectString2='') then 
      begin 
          with application do 
              MessageBox('请选择查询条件','提示信息',MB_OK); 
          end; 
      end 
    多了一个end
      

  3.   

    delphi5开发人员指南说,不要过多地用end else.
    可以考虑更改代码结构
      

  4.   


    确实  我觉得用case 都比这个强