Como reindexar um banco Access 2000

 

uses

  comobj, db, dbtables;

 

procedure TFormReindexar.Button1Click(Sender: TObject);

var

  dao: OLEVariant;

begin

  try

    Panel1.Caption:='Compactando Tabela';

    Panel1.Repaint;

    dao := CreateOleObject('DAO.DBEngine.36');

    dao.CompactDatabase(ExtractFileDir(Application.ExeName)+'\banco.mdb',

      ExtractFileDir(Application.ExeName)+'\banco2.mdb','',0,';pwd=1203583');

    Panel1.Caption:='Apagando Arquivo Temporário';

    Panel1.Repaint;

    if FileExists(ExtractFileDir(Application.ExeName)+'\banco2.mdb') then

      DeleteFile(ExtractFileDir(Application.ExeName)+'\banco.mdb');

    Panel1.Caption:='Renomeando Arquivo';

    Panel1.Repaint;

    if FileExists(ExtractFileDir(Application.ExeName)+'\banco2.mdb') then

      RenameFile(ExtractFileDir(Application.ExeName)+'\banco2.mdb',

      ExtractFileDir(Application.ExeName)+'\banco.mdb');

    Panel1.Caption:='Arquivo Banco.mdb Compactado';

    Panel1.Repaint;

  except

    panel1.caption:='Ocorreu um Erro durante a compactação';

  end;

  DataModule1.ADOConnection1.Connected:=true;

end;