是啊,直接用copyfile函数复制一份不就可以了 如果想写得好些的话,用这个函数也可以,它可以压缩和修复一下access数据库 Function CompactAndRepair(sOldMDB:String;sNewMDB:String;psw:string;password:boolean):Boolean; const sProvider='Provider=Microsoft.Jet.OLEDB.4.0;'; var oJetEng:JetEngine; begin if password then sOldMDB:=sProvider+'Data Source='+sOldMDB+';jet oledb:database password="'+psw+'"' else sOldMDB:=sProvider+'Data Source='+sOldMDB;
if password then sNewMDB:=sProvider+'Data Source='+sNewMDB+';jet oledb:database password="'+psw+'"' else sNewMDB:=sProvider+'Data Source='+sNewMDB; try oJetEng:=CoJetEngine.Create; oJetEng.CompactDatabase(sOldMDB, sNewMDB); oJetEng:=Nil; Result:=True; except oJetEng:=Nil; Result:=False; end; end; 里面用到的一些东西可以通过下面的方法得到 a) 在Delphi IDE中选择Project - Import Type Library. b) 往下翻直到你找到“Microsoft Jet and Replication Objects 2.1 Library”.
我编的一个小编序的access备份到excel文件procedure TForm1.Button6Click(Sender: TObject); var range,v,sheet: variant; i : integer; begin if dm.ADOQuery1.recordcount=0 then Application.MessageBox('没有信息可以输出', '系统提示', MB_ICONERROR); //end; v:=createoleobject('excel.application'); v.workbooks.add; sheet:=v.workbooks[1].worksheets[1]; range := sheet.range['A1:d1']; dm.adoquery1.first; i:=0; while not dm.ADOQuery1.eof do begin inc(i); sheet.cells[i,1]:=trim(dm.ADOQuery1.fieldbyname('项目').AsString); sheet.cells[i,2]:=trim(dm.ADOQuery1.fieldbyname('价格').AsString); sheet.cells[i,3]:=trim(dm.ADOQuery1.fieldbyname('日期').AsString); sheet.cells[i,4]:=trim(dm.ADOQuery1.fieldbyname('备注').AsString); dm.ADOQuery1.Next; if dm.ADOQuery1.Eof then break; end; range.borders.linestyle:=1; sheet.cells.entirecolumn.autofit; application.messagebox('数据已经成功导出到excel!','系统提示',MB_ICONWARNING); v.visible:=true; end;
TO lzf1010(深宇) ( ) 数据库在使用的时候能不能压缩的? 我每次压缩的时候都出错
uses ShellAPI //需声明var OpStru:TSHFileOpStruct; FromDir,ToDir:array[0..128]of char; begin FillChar(FromDir,Sizeof(FromDir),0); StrPCopy(FromDir,'源数据库路径及数据库名'); FillChar(ToDir,Sizeof(ToDir),0); SaveDialog1.FileName:='目的数据库路径及数据库名'; //可以改名,需saveDialog控件 SaveDialog1.Filter:='Access(*.mde)|*.mde'; if SaveDialog1.Execute then begin strPCopy(ToDir,SaveDialog1.FileName); With OpStru do begin Wnd:=Handle; wFunc:=FO_COPY; pFrom:=@FromDir; pTo:=@ToDir; fFlags:=FOF_FilesOnly; //FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; fAnyOperationsAborted:=False; end; try ShFileOperation(OpStru); Showmessage('数据备份成功!'); except Showmessage('数据备份失败!'); end; end; //注意:备份会修改当前工作目前 end;
--------------
用CopyFile来复制呗~
如果想写得好些的话,用这个函数也可以,它可以压缩和修复一下access数据库
Function CompactAndRepair(sOldMDB:String;sNewMDB:String;psw:string;password:boolean):Boolean;
const
sProvider='Provider=Microsoft.Jet.OLEDB.4.0;';
var
oJetEng:JetEngine;
begin
if password then
sOldMDB:=sProvider+'Data Source='+sOldMDB+';jet oledb:database password="'+psw+'"'
else
sOldMDB:=sProvider+'Data Source='+sOldMDB;
if password then
sNewMDB:=sProvider+'Data Source='+sNewMDB+';jet oledb:database password="'+psw+'"'
else
sNewMDB:=sProvider+'Data Source='+sNewMDB;
try
oJetEng:=CoJetEngine.Create;
oJetEng.CompactDatabase(sOldMDB, sNewMDB);
oJetEng:=Nil;
Result:=True;
except
oJetEng:=Nil;
Result:=False;
end;
end; 里面用到的一些东西可以通过下面的方法得到
a) 在Delphi IDE中选择Project - Import Type Library.
b) 往下翻直到你找到“Microsoft Jet and Replication Objects 2.1 Library”.
var
range,v,sheet: variant;
i : integer;
begin
if dm.ADOQuery1.recordcount=0 then
Application.MessageBox('没有信息可以输出', '系统提示', MB_ICONERROR);
//end;
v:=createoleobject('excel.application');
v.workbooks.add;
sheet:=v.workbooks[1].worksheets[1];
range := sheet.range['A1:d1'];
dm.adoquery1.first;
i:=0;
while not dm.ADOQuery1.eof do
begin
inc(i);
sheet.cells[i,1]:=trim(dm.ADOQuery1.fieldbyname('项目').AsString);
sheet.cells[i,2]:=trim(dm.ADOQuery1.fieldbyname('价格').AsString);
sheet.cells[i,3]:=trim(dm.ADOQuery1.fieldbyname('日期').AsString);
sheet.cells[i,4]:=trim(dm.ADOQuery1.fieldbyname('备注').AsString);
dm.ADOQuery1.Next;
if dm.ADOQuery1.Eof then break;
end;
range.borders.linestyle:=1;
sheet.cells.entirecolumn.autofit;
application.messagebox('数据已经成功导出到excel!','系统提示',MB_ICONWARNING);
v.visible:=true;
end;
数据库在使用的时候能不能压缩的?
我每次压缩的时候都出错
FromDir,ToDir:array[0..128]of char;
begin
FillChar(FromDir,Sizeof(FromDir),0);
StrPCopy(FromDir,'源数据库路径及数据库名');
FillChar(ToDir,Sizeof(ToDir),0);
SaveDialog1.FileName:='目的数据库路径及数据库名'; //可以改名,需saveDialog控件
SaveDialog1.Filter:='Access(*.mde)|*.mde';
if SaveDialog1.Execute then begin
strPCopy(ToDir,SaveDialog1.FileName);
With OpStru do begin
Wnd:=Handle;
wFunc:=FO_COPY;
pFrom:=@FromDir;
pTo:=@ToDir;
fFlags:=FOF_FilesOnly; //FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted:=False;
end;
try
ShFileOperation(OpStru);
Showmessage('数据备份成功!');
except
Showmessage('数据备份失败!');
end;
end; //注意:备份会修改当前工作目前
end;