Posted
Filed under asp,asp.net
[원문] -  http://support.microsoft.com/kb/q195951/

문서에서는 쿼리 및 ADO (ActiveX 데이터 개체) 에서 ASP (Active Server Pages) 페이지를 사용하는 Excel 스프레드시트의 정보를 업데이트하는 방법을 보여 줍니다. 이 문서에서는 또한 이러한 유형의 응용 프로그램에 관련된 제한 사항을 설명합니다.

중요: 다중 사용자 액세스 ASP/ADO 응용 프로그램을 지원하지 않지만 Excel 스프레드시트를 않습니다. 따라서 쿼리 및 정보를 업데이트하는 이 방법은 다중 사용자 동시 액세스가 지원하지 않습니다.

추가 정보
이 샘플의 Excel 스프레드시트의 데이터를 액세스하려면 Excel Microsoft ODBC 드라이버를 사용하십시오. Excel 스프레드시트에...

이 샘플의 Excel 스프레드시트의 데이터를 액세스하려면 Excel Microsoft ODBC 드라이버를 사용하십시오. Excel 스프레드시트에서 명명된 범위를 만들어 데이터에 액세스할 수 있는 테이블을 만듭니다.

샘플 응용 프로그램 만드는 단계

  • Excel 파일을 ADOtest.xls sheet1 다음 데이터에 만들기:

    표 축소표 확대
    column1 column2 column3
    rr 15
    bb Test 20
    ee 작동 25

    참고 Excel 스프레드시트의 열을 텍스트와 숫자를 모두 포함되어 있으면 Excel ODBC 드라이버 열이어야 합니다 데이터 형식을 올바르게 해석할 수 없습니다. 열의 모든 셀에 같은 데이터 형식의 있는지 확인하십시오. 열의 각 셀 형식이 없거나 형식 혼합 사이에 "텍스트" 및 "일반" 권한이 다음과 같은 세 가지 오류가 발생할 수 있습니다.
    1. Microsoft OLE DB 공급자에 대한 ODBC 드라이버 오류 '80040e21'
      요청 속성은 이 ODBC 드라이버에서 지원되지 않을 수 있습니다.
    2. Microsoft OLE DB 공급자와 ODBC 드라이버 오류는 '80004005'
      즐겁고 키로 사용할 검색 가능한 열이 포함되어 있기 때문에 쿼리를 업데이트할 수 없습니다.
    3. Microsoft OLE DB 공급자와 ODBC 드라이버 오류는 '80004005'
      쿼리 기반 업데이트하지가 못했습니다. 업데이트할 행을 찾을 수 없습니다.
  • 명명된 범위, myRange1을 사용하여 스프레드시트를 만듭니다.

    1. 데이터가 상주하는 행 및 열을 영역을 강조 표시하십시오.
    2. 삽입 메뉴에서 이름을 가리킨 다음 정의를 클릭하십시오.
    3. 해당 이름 범위 이름을 myRange1 입력하십시오 이름.
    4. 확인을 클릭하십시오.
    명명된 범위 myRange1 다음 데이터가 포함되어 있습니다.

    표 축소표 확대
    column1 column2 column3
    rr 15
    bb Test 20
    ee 작동 25


    참고 ADO Excel 쿼리의 첫 번째 행에 열 머리글이 들어 있다고 가정합니다. 따라서, 명명된 범위 열 머리글이 포함되어야 합니다. DAO에서 동작이 있습니다.

    참고 열 머리글을 숫자를 사용할 수 없습니다. Excel 드라이버는 해석할 수 및 대신 셀 참조를 반환합니다. 예를 들어, "F1" 열 머리글 해석될 것입니다.
  • ODBC 시스템 데이터 원본 이름 (ADOTest.xls 파일을 가리키는 DSN)을 만듭니다.
    1. 제어판에서 ODBC 열 관리자.
    2. 시스템 DSN 탭에서 추가 클릭하십시오.
    3. Microsoft Excel 드라이버 (*.xls) 선택하고 마침 을 클릭하십시오. 이 옵션은 존재하지 않을 경우 Excel 설정에서 Excel Microsoft ODBC 드라이버를 설치해야 합니다.
    4. ADOExcel에 대한 데이터 원본 이름을 선택하십시오.
    5. 올바른 버전의 Excel 버전 설정되어 있는지 확인하십시오.
    6. 선택 통합... 를 클릭하고 해당 ADOTest.xls 찾은 파일과 확인을 클릭합니다.
    7. 사용하여 "옵션 >>" 단추 및 "읽기 전용" 확인란의 선택을 취소합니다.
    8. 확인을 클릭한 다음 다시 확인을 클릭하십시오.
  • ADOTest.xls 파일에 대한 사용 권한을 설정하십시오.
Active Server Page 익명으로 액세스할 경우 익명 계정 (IUSR_ <machinename>) 이상이 확인해야 할 스프레드시트 RW (읽기/쓰기 액세스를. 스프레드시트에서 정보를 삭제할 경우 그에 따라 사용 권한을 부여해야 합니다.

사용자의 Active Server Page 액세스를 인증하는 경우 응용 프로그램이 액세스하는 모든 사용자에게 적절한 권한이 있는지 확인해야 합니다.

참고 스프레드시트의 적절한 사용 권한을 설정한 경우 사용자가 오류 다음과 유사한 메시지가:

Microsoft OLE DB 공급자와 ODBC 드라이버 오류는 '80004005'

[Microsoft][ODBC Excel 드라이버] Microsoft Jet 데이터베이스 엔진이 '(알 수)' 파일을 열 수 없습니다. 이미 다른 사용자가 독점적으로 열려 또는 해당 데이터를 볼 수 있는 권한이 있어야 합니다.
  1. 새 ASP 페이지를 만들고 다음 코드를 붙여 넣습니다.
          <!-- Begin ASP Source Code -->
          <%@ LANGUAGE="VBSCRIPT" %>
          <%
            Set objConn = Server.CreateObject("ADODB.Connection")
            objConn.Open "ADOExcel"
    
            Set objRS = Server.CreateObject("ADODB.Recordset")
            objRS.ActiveConnection = objConn
            objRS.CursorType = 3                    'Static cursor.
            objRS.LockType = 2                      'Pessimistic Lock.
            objRS.Source = "Select * from myRange1"
            objRS.Open
       %>
       <br>
       <%
          Response.Write("Original Data")
    
          'Printing out original spreadsheet headings and values.
    
          'Note that the first recordset does not have a "value" property
          'just a "name" property.  This will spit out the column headings.
    
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'The update is made here
    
          objRS.MoveFirst
          objRS.Fields(0).Value = "change"
          objRS.Fields(1).Value = "look"
          objRS.Fields(2).Value = "30"
          objRS.Update
    
          'Printing out spreadsheet headings and values after update.
    
          Response.Write("<br>Data after the update")
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'ADO Object clean up.
    
          objRS.Close
          Set objRS = Nothing
    
          objConn.Close
          Set objConn = Nothing
       %>
       <!-- End ASP Source Code -->
    					
  2. 및 Active Server Page 이름을 저장하고 브라우저에서 봅니다. 다음 표시됩니다:
          Original Data:
    
          column1    column2    column3
          -----------------------------
    
          rr         this       30
          bb         test       20
          tt         works      25
    
    
          Data after the update:
    
          column1    column2    column3
          -----------------------------
    
          change     look       30
          bb         test       20
          tt         works      25
    					
참고 업데이트 이름 범위 첫 번째 행에 머리글이 후 수행되었습니다.

참조
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오. 190195  (http://support.microsoft.com/kb...

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
190195  (http://support.microsoft.com/kb/190195/ ) ExtractInformation DAO 사용하여 Excel 시트 시작 방법

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ActiveX Data Objects 1.0
  • Microsoft ActiveX Data Objects 1.5
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1 서비스 팩 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Active Server Pages 4.0
  • Microsoft Data Access Components 2.5
키워드: 
kbmt kbcode kbhowto kbmdacnosweep KB195951 KbMtko
2010/10/19 17:29 2010/10/19 17:29