转的。详情可见 402859 贴
use ComObj;
procedure Tmainform.Button1Click(Sender: TObject);
var dao:OLEVariant;
begin
adoconnection1.Close;//压缩是以独占方式进行的;压缩前要关闭数据库连接。
screen.Cursor:=crHourGlass;
dao:=CreateOleObject('DAO.DBEngine.35');//'DAO.DBEngine.36'也可以,不知道是不是access2000要用dao3.6,我在access97上用35和36都可以
dao.CompactDatabase('原来的数据库.mdb','临时数据库.mdb');
DeleteFile('原来的数据库.mdb');
RenameFile('临时数据库.mdb','原来的数据库.mdb');
adoconnection1.Open;
adotable1.Active:=true;
screen.Cursor:=crDefault;
end;