Novás aqui te dejo la función que utilizo yo para compactar y reparar las bases de datos:
procedure CompactarBDAccess(Path, BD: String);
var V: Variant;
DbEngine: Variant;
TmpFile: String;
Result : Boolean;
begin
Result := False;
try
if not GetEngine(DbEngine) then Exit;
// Antes de compactar la Base de Datos, ésta se repara.
DbEngine.RepairDatabase(Path+'\'+BD);
DbEngine.CompactDataBase(Path+'\'+BD, Path+'\Temp.mdb');
if DeleteFile(Path+'\'+BD) then
begin
CopiarFich(Path+'\Temp.mdb', Path+'\'+BD);
if DeleteFile(Path+'\Temp.mdb') then;
Result := True;
end;
except
Exit;
end;
end;
|