<!--CodeS-->
var
  XL, ExcelBook, ExcelSheet : Variant;
  intCnt, i, j : integer;
begin
   try
      //엑셀을 실행
      XL := CreateOLEObject('Excel.Application');
   except
      ShowMessage('Excel이 설치되어 있지 않습니다!!!');
      Exit;
   end;
   Try
      XL.Visible := False;
      XL.DisplayAlerts := False;
      if OpenDialog1.Execute then begin
         MeResult.Clear;
         MeResult.Lines.Add('파일을 읽어드립니다.');
         lbFile.Caption  := '파일 : ' + OpenDialog1.FileName;
         lbCount.Caption := '자료건수 : ' + '0건';
         ExcelBook := XL.WorkBooks.Open(OpenDialog1.FileName);
         ExcelBook := XL.WorkBooks.item[1]; //워크 쉬트 설정
         ExcelSheet := ExcelBook.Worksheets.Item[1];
         SExGrid.RowCount := ExcelSheet.UsedRange.Rows.count;
         SExGrid.ColCount := ExcelSheet.UsedRange.Columns.count;
         
         ProgressBar1.max := ExcelSheet.UsedRange.Rows.count;
         ProgressBar1.Position := 0;
         For I := 1 to ExcelSheet.UsedRange.Rows.count do begin
             if Trim(XL.cells[I,1].formula)  = '' then begin
                SExGrid.RowCount := j - 1;
                lbCount.Caption := '자료건수 : ' + FormatFloat('###,##0건', j-2);
                Break;
             end;
             For J := 1 to ExcelSheet.UsedRange.Columns.count do
                 SExGrid.Cells[J,I-1] := VarToStr(ExcelSheet.Cells[I,J]);  //스트링그리드에 뿌리기
             ProgressBar1.Position := I;
         end;
         MeResult.Lines.Add(IntToStr(ExcelSheet.UsedRange.Rows.count) + '건의 자료를 변환하였습니다');
         XL.WorkBooks.Close;
         XL.quit;
         XL := unassigned;
         if bCheckExcelFile = False then begin
            MessageDlg('정상적인 엑셀 파일이 아닙니다.', mtInformation,[mbOK], 0);
            ClearGrid;
         end;
      end;
   Except
      on err:exception do begin
         XL.WorkBooks.Close;
         XL.quit;
         XL := unassigned;
         ShowMessage('작업이 취소되었습니다. Data확인요망-'+err.message);
      end;
   end;
   ProgressBar1.Position := 0;
end;
<!--CodeE-->
이게 올리는 폼인데 무슨 문제가 있는지 모르겠네요 
스트링 그리드에 올리기만 하면 파라독스 .db파일을 못찾습니다. 
			 
	
	
    
    
	
	
    
    
    
이부분이 실행된후에 프로그램의 현재 디렉토리(용어선택이 이해가 가시는지..^^)가 변경이 되어서 그렇습니다.
그러니까..
프로그램 내부에서 listbox.items.loadfromfile('aaa.txt'); 라고 햇을때..
기본적으로 프로그램에서 프로그램이 현재 실행된 디렉토리 에서 aaa.txt를 찾게 됩니다.
하지만 if OpenDialog1.Execute then 가 실행된후에 기본 디렉토리가 바뀌면???
해당 디렉토리에서 aaa.txt를 찾으면서 없다고 에러가 나겠죠?
그래서..
path := ExtractFilePath(ParamStr(0)) + 'data\employee.db';
이런식으로 하면.. path는 현재 프로그램이 실행된 위치의 data란 하위폴더에서 해당 파일을 검색하므로
.db파일을 찾지못하는 것과 같은 오류는 발생하지 않을겁니다.
지금까지 오류원인에 대한 추측과 해결방안이었습니다..^^;
즐프~