Q&A

  • excel의 내용과 table의 내용을 비교하려고 하는데 에러가 납니다. 꼭봐주세요.
excel의 내용과 table의 내용을 비교하려고 하는데 에러가 납니다.
아래의 소스를 보시고 코딩 뒷 부분에 주석으로 에러 부분을 써 놨습니다.
좀 알려주세요. 도와주세요

procedure TForm1.BitBtn1Click(Sender: TObject);
var
    ExcelApp, ExcelBook, ExcelSheet : Variant;
    i, j                            : Integer; // 순환변수
Begin
    try
        ExcelApp := CreateOLEObject('Excel.Application');
    except
        ShowMessage('Excel이 설치되어 있지 않습니다!!!');
        Exit;
    end;
    Try
        ExcelApp.Visible         := False;
        ExcelApp.DisplayAlerts   := False;

        // 불러들일 화일명....

//        ExcelBook   :=  ExcelApp.WorkBooks.save('C:\aa.XLS');
        ExcelBook   :=  ExcelApp.WorkBooks.open('C:\aa.XLS');
//        ExcelBook   :=  ExcelApp.WorkBooks.Open('G:\Documents and Settings\PDORY\바탕 화면\200009s.XLS');
        ExcelBook   :=  ExcelApp.WorkBooks.item[1];
        ExcelSheet  :=  ExcelBook.Worksheets.Item[1];


        For  i  := 1 to ExcelSheet.UsedRange.Rows.count do BEGIN
            WITH Q1 DO BEGIN
               CLOSE;
               SQL.CLEAR;
               SQL.ADD(' select pummok from tta01 '
                     + ' where brand = ''C'' '
                     + '   and palcode = ''' + VarToStr(ExcelSheet.Cells[i,5]) + ''' '); //   // 이 부분에서 Undecalred identifier: 'VarRoStr' 에러 발생
{               FOR J := 1 TO 62 DO BEGIN
                 IF J = 8 THEN BEGIN
                    IF (TRIM(VarToStr(ExcelSheet.Cells[i,J]))='-  -')  or (TRIM(VarToStr(ExcelSheet.Cells[i,J]))='') THEN
                       SQL.ADD(' ''1900-01-01'' ')
                    ELSE
                    SQL.ADD(' '''+TRIM(VarToStr(ExcelSheet.Cells[i,J]))+'''  ');
                 END ELSE BEGIN
                   IF J >=  15 THEN
                      SQL.ADD(' '+ INTTOSTR(STRTOINT(TRIM(VarToStr(ExcelSheet.Cells[i,J]))))+'  ')
                   ELSE BEGIN
                   IF J=1 THEN begin
                   SQL.ADD(' '''+ COPY(INTTOSTR(STRTOINT(TRIM(VarToStr(ExcelSheet.Cells[i,J])))+10000),2,4) +'''  ');

                   end ELSE
                   SQL.ADD(' '''+TRIM(VarToStr(ExcelSheet.Cells[i,J]))+'''  ');
                   END;
                 END;
                 IF J <> 62 THEN
                 SQL.ADD(' ,   ')
                 ELSE
                 SQL.ADD(' )       ');
               END; }
               EXECSQL;
               showmessage('111111');
               showmessage(ExcelSheet.cells[i,5]);
               if Q1.RecordCount <> 0 then
                 ExcelSheet.cells[i,4] := fieldbyname('pummok').asString;
            END;
        END;

        ExcelApp.WorkBooks.Close;
        ExcelApp.quit;
        ExcelApp := unassigned;  // 이 부분에서 Undecalred identifier: 'unassigned' 에러 발생
        showmessage(' 작 업 완 료 ');
    Except
      on err : exception do  begin
          ExcelApp.WorkBooks.Close;
          ExcelApp.quit;
          ExcelApp := unassigned;
          ShowMessage('작업이 취소되었습니다. Data확인요망-'+err.message);
      end;
    end;

end;
1  COMMENTS
  • Profile
    Crazy™ 2006.05.03 20:52
    안녕하세요.
    5번째 값을 가져올때 VarToStr이 선언되지 않았다고 에러나는건 이 함수나 펑션을 포함하는 유닛이
    없어서 그래요.
    Uses 절에 Variants 포함하시고 해보세요..