function CompactAccessDB(DB, MdP : string): Boolean; {DB = path complet de la base Access, MdP = password de la DB }
// Ajouter ComObj dans les Uses
var
  v: OLEvariant;
begin
  Result := False;
  try
    v := CreateOLEObject('JRO.JetEngine');
    try
      if CopyFile(PAnsiChar(DB),PAnsiChar(DB+'.bak'),False) then //backup de la base
      begin
        V.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB+';Jet OLEDB: Database Password='+MdP,
                          'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB+'comp'+';Jet OLEDB: Database Password='+MdP); //compactage
        DeleteFile(DB);// suppression de la base d'origin
        RenameFile(DB+'comp',DB); // mise en place de la base compactée
        Result := True;
      end;
    finally
      V := Unassigned;
    end;
  except
    Result := False;
  end;
end;
			
		
 
	
Partager