Office Access 2003 또는 Access 2002에서 Excel 통합 문서로 연결된 테이블의 데이터를 변경하거나 추가하거나 삭제할 수 없다

Office 2003에 대한 지원이 종료되었습니다.

Microsoft는 2014년 4월 8일 Office 2003에 대한 지원을 종료했습니다. 이러한 변경에 따라 해당 소프트웨어 업데이트 및 보안 옵션이 영향을 받습니다. 사용자에게 미치는 영향 및 계속 보호를 받는 방법에 대해 알아보십시오.

현상
Microsoft Office Access 2003 또는 Microsoft Access 2002에서 Microsoft Excel 통합 문서로 연결된 테이블의 데이터를 변경하거나 추가하거나 삭제할 수 없습니다.

또한 아래 경우 중 하나에 해당하면 이러한 문제가 발생할 수 있습니다.
  • 쿼리를 작성하여 Excel 통합 문서로 연결된 테이블에서 데이터를 검색하는 경우
  • 폼을 작성하여 Excel 통합 문서로 연결된 테이블에서 데이터를 액세스하는 경우
  • DAO 또는 ADO를 사용하여 Excel 통합 문서로 연결된 테이블을 프로그래밍 방식으로 업데이트하는 경우
쿼리를 수행하여 연결된 Excel 통합 문서의 레코드를 업데이트하는 경우 다음과 같은 메시지가 나타납니다.
작업이 업데이트 가능한 쿼리를 사용해야 합니다.
DAO를 사용하여 Excel 통합 문서로 연결된 테이블을 프로그래밍 방식으로 업데이트하는 경우 다음과 같은 메시지가 나타납니다.
런타임 오류 '3027' 업데이트할 수 없습니다. 데이터베이스나 개체가 읽기 전용입니다.
ADO에서 연결된 데이터를 업데이트하려는 경우에도 동일한 메시지가 나타나지만 오류 번호는 다음과 유사할 수 있습니다.
-2147217911 (80040e09)
Excel 통합 문서에 레코드를 삽입하는 쿼리를 실행하면 Excel 통합 문서가 Access 데이터베이스에 연결되어 있지 않은 경우에도 다음과 같은 오류 메시지가 나타납니다.
작업이 업데이트 가능한 쿼리를 사용해야 합니다.
원인
다음과 같은 경우 이 예상된 문제가 발생할 수 있습니다.
  • Microsoft Office 2003 서비스 팩 2(SP2) 또는 Office 2003 SP2 이후에 릴리스된 Access 2003 업데이트를 설치한 경우

    Microsoft Office 2003 서비스 팩 2에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    887616 Office 2003 서비스 팩 2에 대한 설명
  • 2005년 10월 18일자 Access 2002용 업데이트(KB904018)를 설치한 경우

    Access 2002용 업데이트(KB904018)에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    904018 2005년 10월 18일자 Access 2002용 업데이트에 대한 설명
  • Microsoft Office 2003 서비스 팩 2(SP2), Office 2003 SP2 이후에 릴리스된 Access 2003 업데이트 또는 2005년 10월 18일자 이후에 릴리스된 Access 2002 업데이트(KB904018)가 포함된 Access 런타임 응용 프로그램을 설치한 경우
    Access 런타임 응용 프로그램을 사용하여 Office 업데이트 파일을 포함시키는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    916176 Access 2003 또는 Access 2002에서 응용 프로그램에 대한 설치 패키지를 만들 때 마법사에서 Access 릴리스 버전에 포함된 런타임 파일을 사용한다
해결 과정
이 예상된 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.

방법 1: Microsoft Excel 사용

Microsoft Excel에서 연결된 Excel 통합 문서를 연 다음 해당 통합 문서를 변경합니다. 변경을 완료하면 변경 내용을 저장하고 통합 문서를 닫습니다.

방법 2: Access 2003 또는 Access 2002 사용

연결된 Excel 통합 문서를 Access로 가져온 다음 데이터를 변경합니다. 변경을 완료하면 해당 데이터를 Excel .xls 파일로 내보냅니다.

Access에서 Excel로 테이블을 내보내려면 Access에서 다음 코드를 실행하십시오.
Public Sub WorkArounds()On Error GoTo Leave    Dim strSQL, SQL As String    Dim Db As ADODB.Connection    Set Db = New ADODB.Connection    Db.CursorLocation = adUseClient    Db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=<AccessPath>"    SQL = "<MyQuery>"    CopyRecordSetToXL SQL, Db    Db.Close    MsgBox "Access has successfully exported the data to excel file.", vbInformation, "Export Successful."    Exit SubLeave:        MsgBox Err.Description, vbCritical, "Error"        Exit SubEnd SubPrivate Sub CopyRecordSetToXL(SQL As String, con As ADODB.Connection)    Dim rs As New ADODB.Recordset    Dim x    Dim i As Integer, y As Integer    Dim xlApp As Excel.Application    Dim xlwbBook As Excel.Workbook, xlwbAddin As Excel.Workbook    Dim xlwsSheet As Excel.Worksheet    Dim rnData As Excel.Range    Dim stFile As String, stAddin As String    Dim rng As Range    stFile = "<ExcelPath>"    'Instantiate a new session with the COM-Object Excel.exe.    Set xlApp = New Excel.Application    Set xlwbBook = xlApp.Workbooks.Open(stFile)    Set xlwsSheet = xlwbBook.Worksheets("<WorkSheets>")    xlwsSheet.Activate    'Getting the first cell to input the data.    xlwsSheet.Cells.SpecialCells(xlCellTypeLastCell).Select    y = xlApp.ActiveCell.Column - 1    xlApp.ActiveCell.Offset(1, -y).Select    x = xlwsSheet.Application.ActiveCell.Cells.Address    'Opening the recordset based on the SQL query and saving the data in the Excel worksheet.    rs.CursorLocation = adUseClient    If rs.State = adStateOpen Then        rs.Close    End If    rs.Open SQL, con    If rs.RecordCount > 0 Then        rs.MoveFirst        x = Replace(x, "$", "")        y = Mid(x, 2)        Set rng = xlwsSheet.Range(x)        xlwsSheet.Range(x).CopyFromRecordset rs    End If    xlwbBook.Close True    xlApp.Quit    Set xlwsSheet = Nothing    Set xlwbBook = Nothing    Set xlApp = NothingEnd Sub
참고 이 코드 예제에서 다음 자리 표시자를 대체하십시오.
  • <AccessPath>
  • <ExcelPath>
  • <MyQuery>
    <MyQuery>는 Access 데이터베이스에서 테이블에 대해 실행하는 쿼리의 자리 표시자입니다. 쿼리 결과는 Excel 통합 문서로 내보내집니다.
  • <WorkSheets>
    <WorkSheets>는 결과를 내보낼 Excel 워크시트의 자리 표시자입니다.
이 코드 예제를 실행하려면 Ctrl+G를 눌러 즉시 실행 창을 열고 WorkArounds를 입력한 다음 Enter 키를 누르십시오.
추가 정보
법적인 문제로 인해 Microsoft는 Access 2003 및 Access 2002의 경우 Excel 통합 문서의 범위를 나타내는 연결된 테이블에서 사용자가 데이터를 변경하지 못하도록 설정해 두었습니다. 그러나 Excel 통합 문서에서 직접 변경하면 Access의 연결된 테이블에 변경 내용이 나타납니다.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.
edit access2003 access2k3 acc2003 acc2k3 access2002 access2k2 accessxp acc2002 acc2k2 accxp excel2003 excel2k3 xl2003 xl2k3 excel2002 excel2k2 excelxp xl2002 xl2k2 xlxp excel2000 excel2k xl2000 xl2k
속성

문서 ID: 904953 - 마지막 검토: 09/13/2006 04:32:00 - 수정: 5.0

Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Access 2002 Runtime, Microsoft Office Access 2003 Runtime

  • kbtshoot kbdatabase kbprb kbexpertiseadvanced KB904953
피드백