Procedure PackMdbFile(_Name, _pass: String; Verbose:Boolean);
var
e:OleVariant;
mdbDest: string;
sizei,sizef:Real;
begin
sizei:=FileSizeByName(_Name)/1024;
mdbDest:=ExtractFilePath(_name)+'\tmp~'+ExtractFileName(_Name);
if FileExists(mdbDest) then DeleteFile(mdbDest);
e := CreateOleObject('DAO.DBEngine.36');
if _pass = EmptyStr then
e.CompactDatabase(_Name, mdbDest,';LANGID=0x0409;CP=1252;COUNTRY=0',0)
else
e.CompactDatabase(_Name, mdbDest,';LANGID=0x0409;CP=1252;COUNTRY=0',0,';PWD='+_pass);
sizef:=FileSizeByName(mdbDest)/1024;
DeleteFile(_Name);
RenameFile(mdbDest, _Name);
if Verbose then ShowMessage('Hecho, mdb compactada de '+FloatToStr(sizei)+' Kb a '+FloatToStr(sizef)+' Kb');
end;