Du kan ikke endre, legge til eller slette data i tabeller som er koblet til en Excel-arbeidsbok i Office Access 2007, Office Access 2003 eller Access 2002

Artikkeloversettelser Artikkeloversettelser
Artikkel-ID: 904953 - Vis produkter som denne artikkelen gjelder for.
Vis alt | Skjul alt

På denne siden

Symptom

Du kan ikke endre, legge til eller slette data i tabeller som er koblet til en Microsoft Excel-arbeidsbok i Microsoft Office Access 2007, i Microsoft Office Access 2003 eller i Microsoft Access 2002.

Du kan også oppleve dette problemet hvis et av følgende forhold er til stede:
  • Du lager en spørring for å hente data fra tabeller som er koblet til en Excel-arbeidsbok.
  • Du lager et skjema med tilgang til data fra tabeller som er koblet til en Excel-arbeidsbok.
  • Du bruker DAO eller ADO til å oppdatere tabeller i et program som er koblet til en Excel-arbeidsbok.
Du får en melding som ligner på denne når du utfører en spørring for å oppdatere poster i en koblet Excel-arbeidsbok:
Operasjonen må bruke en spørring som kan oppdateres
Du får en melding som ligner på denne, når du bruker DAO til å oppdatere tabeller i et program som er koblet til en Excel-arbeidsbok:
Kjøretidsfeil 3027. Kan ikke oppdatere. Databasen eller objektet er skrivebeskyttet.
Når du prøver å oppdatere de koblede dataene i ADO, er meldingen den samme, men feilnummeret kan være likt følgende:
-2147217911 (80040e09)
Når du kjører en spørring for å sette inn poster i en Excel-arbeidsbok, får du en melding som ligner på denne, selv om Excel-arbeidsboken ikke er koblet til en Access-database:
Operasjonen må bruke en spørring som kan oppdateres

Årsak

Dette forventede problemet oppstår hvis et av følgende forhold er til stede:
  • Du bruker Office Access 2007.
  • Du har installert Microsoft Office 2003 Service Pack 2 (SP2) eller en hvilken som helst oppdatering for Access 2003 som ble utgitt etter Office 2003 SP2.

    Hvis du vil ha mer informasjon om Microsoft Office 2003 Service Pack 2, klikker du artikkelnummeret nedenfor for å vise artikkelen i Microsoft Knowledge Base:
    887616 Beskrivelse av Office 2003 Service Pack 2
  • Du har installert oppdateringen for Access 2002 (KB904018) som er datert 18.10.05.

    Hvis du vil ha mer informasjon om oppdateringen for Access 2002 (KB904018), klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
    904018 Beskrivelse av oppdateringen for Access 2002: 18. oktober 2005
  • Du har installert et Access-kjøretidsprogram som inkluderer Microsoft Office 2003 Service Pack 2 (SP2), en hvilken som helst oppdatering for Access 2003 som ble utgitt etter Office 2003 SP2 eller oppdateringen for Access 2002 (KB904018) som er datert 18.10.05 eller senere.
    Hvis du vil ha mer informasjon om hvordan du tar med Office-oppdateringsfiler i et Access-kjøretidsprogram, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
    916176 Veiviseren bruker kjøretidsfilene med den utgitte versjonen av Access når du oppretter en installasjonspakke for et program i Access 2003 eller Access 2002 (denne artikkelen kan være på engelsk)

Workaround

Bruk en av følgende metoder for å omgå dette forventede problemet.

Metode 1: Bruk Microsoft Excel

Åpne den koblede Excel-arbeidsboken i Microsoft Excel, og gjør endringene i arbeidsboken. Når du har gjort alle endringene, kan du lagre dem og deretter lukke arbeidsboken.

Metode 2: Bruk Office Access 2007, Access 2003 eller Access 2002

Importer den tilkoblede Excel-arbeidsboken i Access, og gjør deretter endringene i dataene. Når du har gjort alle endringene, eksporterer du dataene som en XLS-fil til Excel.

Kjør koden nedenfor i Access for å eksportere tabellen fra Access til Excel.
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>"
    Obs!  I Office Access 2007 bruker du følgende kodelinje:
    'Db.Open "PROVIDER=Microsoft.ACE.OLEDB.12.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 Sub
Leave:
        MsgBox Err.Description, vbCritical, "Error"
        Exit Sub
End Sub

Private 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 = Nothing

End Sub
Obs!  I dette kodeeksemplet erstatter du følgende plassholdere:
  • <AccessPath>
  • <ExcelPath>
  • <MyQuery>
    <MyQuery> er en plassholder for spørringen du kjører mot tabellene i Access-databasen. Resultatet av spørringen eksporteres til Excel-arbeidsboken.
  • <WorkSheets>
    <WorkSheets> er en plassholder for regnearket i Excel som du vil eksportere resultatet til.
Hvis du vil kjøre dette kodeeksemplet, trykker du CTRL+G for å åpne Immediate-vinduet, skriver inn WorkArounds og trykker deretter ENTER.

Mer informasjon

På grunn av juridiske problemer har Microsoft deaktivert denne funksjonaliteten i Access 2003 og Access 2002 som gjør at brukerne kan endre dataene i koblede tabeller som peker på et område i en Excel-arbeidsbok. Når du imidlertid gjør endringer direkte i Excel-arbeidsboken, vises endringene i den koblede tabellen i Access.

Egenskaper

Artikkel-ID: 904953 - Forrige gjennomgang: 21. februar 2007 - Gjennomgang: 6.3
Informasjonen i denne artikkelen gjelder:
  • Microsoft Office Access 2007
  • 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
Nøkkelord: 
kbexpertiseadvanced kbdatabase kbtshoot kbprb KB904953

Gi tilbakemelding

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com