|
안녕하세요...
2960번의 질문/답에 이어 문의 드립니다.
저두 똑같이 실행했는데두 EXCEL.EXE가 메모리상에 그대로 남아있거든요.
제 프로그램은 DB 쿼리를 하고 DB GRID에 나타내주고 REPORT라는 버튼을 누르면 그 데이터들이 엑셀 문서에 기록되는 프로그램이예요. 엑셀 문서를 닫고서 다시 다른 쿼리를 하고 엑셀 레포트를 생성하려면 엑셀창이 뜨다 마는 현상이 일어납니다. 그래서, 아래와 같이 테스트를 해보니
void __fastcall TFORM_STATISTICS::ST_ReportClick(TObject *Sender)
{
....생략
if(!xlApp.IsEmpty()) {
ShowMessage("xlApp is not Empty...");
if(!xlBooks.IsEmpty()) {
ShowMessage("xlBook is not Empty");
xlBooks.OleProcedure("Close");
}
xlApp.OleProcedure("Quit");
}
if(!xlApp.IsEmpty()) {
ShowMessage("xlApp is not Empty...");
if(!xlBooks.IsEmpty()) {
ShowMessage("xlBook is not Empty");
xlBooks.OleProcedure("Close");
}
xlApp.OleProcedure("Quit");
}
if (xlApp.IsEmpty()) {
ShowMessage (" Application is Empty...");
xlApp = Variant::CreateObject("Excel.Application");
}
... 생략
}
이렇게 했을 때 결과는
쿼리를 하고 레포트를 눌러 엑셀 데이터를 기록되게 한 후 문서를 저장하고 엑셀을 닫는다..
다시 쿼리를 하고 레포트를 눌렀을 때....
분명히 Empty된 엑셀이여야 하는데...
"xlApp is not Empty", "xlBook is not Empty"가 뜨고(여전히 메모리상에 엑셀이 남아 있음)
엑셀이 뜨다 마는 현상(위 테두리만)이 일어납니다.
엑셀을 한번두 안죽이고 사용하면 이러한 현상은 없지만 어떻게 해결해야 할까여???
도와 주세여!!!! ^^
|