DAO ACCESS 修复数据库(50分)

  • 主题发起人 主题发起人 cgdlin
  • 开始时间 开始时间
C

cgdlin

Unregistered / Unconfirmed
GUEST, unregistred user!
执行下面代码
procedure TForm1.Button1Click(Sender: TObject);
var
dao: OLEVariant;
begin
dao := CreateOleObject('DAO.DBEngine.36');
dao.CompactDatabase('d:/mjkz.mdb','d:/mjkz1.mdb',,,'sdsy123456');
end;

提示错误 "找不到可安装的 ISAM"

烦请大虾指点
 
uses DAO97
const
ws_ex_layered = $80000;
ac_src_over = $0;
ac_src_alpha = $1;
ac_src_no_premult_alpha = $1;
ac_src_no_alpha = $2;
ac_dst_no_premult_alpha = $10;
ac_dst_no_alpha = $20;
lwa_colorkey = $1;
lwa_alpha = $2;
ulw_colorkey = $1 ;
ulw_alpha = $2 ;
ulw_opaque = $4 ;
var
SourceFileName:String;
TargetFileName:String;
dao:OLEVariant;
begin
try
SourceFileName:=CurrentPath+'Eiss.mdb';
TargetFileName:=CurrentPath+'nEiss.mdb';

DataModule1.conEissMdb.Close; //压缩是以独占方式进行的;压缩前要关闭数据库连接。
screen.Cursor:=crHourGlass;
dao:=CreateOleObject('DAO.DBEngine.36');//'DAO.DBEngine.36'也可以,不知道是不是access2000要用dao3.6,我在access97上用35和36都可以
dao.CompactDatabase(SourceFileName,TargetFileName);
DeleteFile(SourceFileName);
RenameFile(TargetFileName,SourceFileName);
screen.Cursor:=crDefault;
finally
DataModule1.conEissMdb.Open;
end;
 
bigroute
谢谢!!!
我试了几次后发现 把数据库的密码去掉以后,使用两个参数可以运行,但是设置密码后
程序就出错
 
没压过带密码的,ACCESS密码有用吗?
 
dao.CompactDatabase(FileName,TempFile,'',0,';pwd=123456789');

改为这一句可以压带带密码的,如果你的ACCESS文件没有密码,也会给加上。
 
多人接受答案了。
 
后退
顶部