我在将DBGRID内容另存为EXCEL文件后,关掉程序时,抱错,咋解决(100分)

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

cafe_c

Unregistered / Unconfirmed
GUEST, unregistred user!
错误说“……Exception EOleException in Model………BOF或EOF有一个为真,或者当前记录已被删除,所需的操作需要一个当前的记录”
意思是不是说有一个东西没有释放掉,代码是从这里找到的。
用了 TExcelApplication;
TExcelWorksheet;
TExcelWorkbook;
TADOQuery控件
怎么解决呀,没使过EXCEL控件。

新来的,这里分好贵呀,问两次就没了。
 
procedure txxcs.buildxlsfile(strFileName:string);
var
ExcelApp,MyWorkBook:Variant;
i,j:integer;
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
MyWorkBook:=CreateOleobject('Excel.Sheet');
except
application.Messagebox('无法打开Xls文件,请确认已 经安装EXCEL.','',mb_OK+mb_IconStop);
Exit;
end;
MyworkBook:=ExcelApp.workBooks.Add;
MyWorkBook.WorkSheets[1].Cells[1,1].Value:='姓名';
MyWorkBook.WorkSheets[1].Cells[1,2].Value:='贷款帐号';
.......
with ProgressBar1 do
begin
Min := 0;
Max := Table1.RecordCount-1;
Table1.First;
for i := Min to Max do
begin
Position := i;
MyWorkBook.WorkSheets[1].Cells[i+2,1].Value:=table1.fieldbyname('xm').asstring;
MyWorkBook.WorkSheets[1].Cells[i+2,2].Value:=table1.fieldbyname('dkzh').asstring;
.....
Table1.Next;
end;
end;
try
MyWorkBook.saveas(strFileName);
MyWorkBook.close;
application.messagebox('保存成功','正确',mb_ok);
ExcelApp.Quit;
ExcelApp:=Unassigned; //释放VARIANT变量
except //当存为一个已有的文档而又不覆盖时将
MyWorkBook.close; //产生一个例外
application.messagebox('保存失败','错误',mb_ok);
ExcelApp.Quit;
end;
end;
d5+win98 passed;
 
如果用的是ADO的话请升级Delphi的ADO SP2或下一个第三方的补丁
如果没有升级而系统的ADO是2.6版本的话,在退出关闭表时(TADoQuery,TADOTAble,TADODataSet都一样)
就会报上面的错误!
请到:
http://www.borland.com/devsupport/delphi/mdac26.html
看看相关情况的官方说明并下载升级包!(可能要下Delphi Ent Sp1,和ADO Sp2)
 
杜宝说的没错,升级后就没有问题了。
 
只是很难下
 
后退
顶部