unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComObj,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function DaoActive(var DaoObject:OleVariant):Boolean;
function DaoCompactDB(const FileName,Pwd:string):Boolean;
function DaoRepairDB(const FileName:string):Boolean;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}function tform1.DaoActive(var DaoObject:OleVariant):Boolean;
begin
Result:=False;
try
DaoObject:=GetActiveOleObject('DAO.DBEngine.36');//这个报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错
Result:=True;
except
try
DaoObject:=CreateOleObject('DAO.DBEngine.36');
Result:=True;
except
DaoObject:=Null;
end;
end;
end;//压缩Access数据库
function tform1.DaoCompactDB(const FileName,Pwd:string):Boolean;
var
db:OleVariant;
TempFile:string;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
TempFile:=ExtractFilePath(FileName)+'msaTemp.mdb';
db.CompactDatabase(FileName,TempFile,,,';pwd='+Pwd);
DeleteFile(FileName);
RenameFile(TempFile,FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;//修复Access数据库
function tform1.DaoRepairDB(const FileName:string):Boolean;
var
db:OleVariant;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
db.RepairDatabase(FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
DaoCompactDB('d:\monitor\monitor.mdb','');
DaoRepairDB('d:\monitor\monitor.mdb');
end;end.为什么老是报错.地点如上.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComObj,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function DaoActive(var DaoObject:OleVariant):Boolean;
function DaoCompactDB(const FileName,Pwd:string):Boolean;
function DaoRepairDB(const FileName:string):Boolean;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}function tform1.DaoActive(var DaoObject:OleVariant):Boolean;
begin
Result:=False;
try
DaoObject:=GetActiveOleObject('DAO.DBEngine.36');//这个报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错报错
Result:=True;
except
try
DaoObject:=CreateOleObject('DAO.DBEngine.36');
Result:=True;
except
DaoObject:=Null;
end;
end;
end;//压缩Access数据库
function tform1.DaoCompactDB(const FileName,Pwd:string):Boolean;
var
db:OleVariant;
TempFile:string;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
TempFile:=ExtractFilePath(FileName)+'msaTemp.mdb';
db.CompactDatabase(FileName,TempFile,,,';pwd='+Pwd);
DeleteFile(FileName);
RenameFile(TempFile,FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;//修复Access数据库
function tform1.DaoRepairDB(const FileName:string):Boolean;
var
db:OleVariant;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
db.RepairDatabase(FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
DaoCompactDB('d:\monitor\monitor.mdb','');
DaoRepairDB('d:\monitor\monitor.mdb');
end;end.为什么老是报错.地点如上.
直接DaoObject:=CreateOleObject('DAO.DBEngine.36');
就可以