1直接用daorocedure TForm1.Button1Click(Sender: TObject);
var
  dbe:olevariant;
begin
 // DBEngine
  dbe:= CreateOleObject('dao.DBEngine.36');
  if OpenDialog1.Execute then
  dbe.CompactDatabase(OpenDialog1.FileName, ExtractFilePath (OpenDialog1.FileName) + 'c.mdb', '', 0, '');
end;

解决方案 »

  1.   

    2
     ADOConnection1.Execute('alter table authors add column aaaa text(30)');
      

  2.   

    hehe.
    好文章,就是太长了。
      

  3.   

    第二个问题已解决,谢谢。
    第一个问题:
    执行dbe:= CreateOleObject('dao.DBEngine.36')就死机,
    'dao.DBEngine.36'是何意?
      

  4.   

    你是access97的话 应该dbe:= CreateOleObject('dao.DBEngine.35').35 应该是dao3.5
    你没装access2000 可能没有dao3.6我猜的
      

  5.   


    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DAO.DBEngine.36
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DAO.DBEngine.35
      

  6.   

    把'dao.DBEngine.36'改成'dao.DBEngine.35'后
    错误由"类字符串无效"变成"OLE error 80040112"
    在IDE环境下仍死机。