Det går inte att ändra, lägga till eller ta bort data i tabeller som är länkade till en Excel-arbetsbok i Office Access 2007, Office Access 2003 eller Access 2002

Artikelöversättning Artikelöversättning
Artikel-id: 904953 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

Symptom

I Microsoft Office Access 2007, Microsoft Office Access 2003 och Microsoft Access 2002 går det inte att ändra, lägga till eller ta bort data i tabeller som är länkade till en Microsoft Excel-arbetsbok.

Detta kan inträffa om någon av följande förutsättningar föreligger:
  • Du skapar en fråga för att hämta data från tabeller som är länkade till en Excel-arbetsbok.
  • Du skapar ett formulär som kommer åt data från tabeller som är länkade till en Excel-arbetsbok.
  • Du använder DAO eller ADO för att programmässigt uppdatera tabeller som är länkade till en Excel-arbetsbok.
Följande meddelande eller liknande visas när du använder en fråga för att uppdatera poster i en länkad Excel-arbetsbok:
En uppdaterbar fråga måste användas i åtgärden
Följande meddelande visas när DAO används för att programmässigt uppdatera tabeller som är länkade till en Excel-arbetsbok:
Körningsfel '3027' Det går inte att uppdatera. Databasen eller objektet är skrivskyddat.
När du försöker uppdatera länkade data i ADO visas samma meddelande, men felnumret kan likna följande:
-2147217911 (80040e09)
När du använder en fråga för att infoga poster i en Excel-arbetsbok visas följande felmeddelande, trots att Excel-arbetsboken inte är länkad till en Access-databas:
En uppdaterbar fråga måste användas i åtgärden

Orsak

Detta inträffar om någon av följande förutsättningar föreligger:
  • Du använder Office Access 2007.
  • Du har installerat Microsoft Office 2003 Service Pack 2 (SP2) eller en Access 2003-uppdatering som har släppts efter Office 2003 SP2.

    Om du vill veta mer om Microsoft Office 2003 Service Pack 2 klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
    887616 Beskrivning av Office 2003 Service Pack 2
  • Du har installerat uppdateringen för Access 2002 (KB904018) från den 18 oktober 2005.

    Om du vill veta mer om uppdateringen för Access 2002 (KB904018) klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
    904018 Beskrivning av uppdatering för Access 2002: 18 oktober 2005
  • Du har installerat ett Access-körningsprogram med Microsoft Office 2003 Service Pack 2 (SP2), en Access 2003-uppdatering som har släppts efter Office 2003 SP2 eller uppdateringen för Access 2002 (KB904018) från den 18 oktober 2005 eller senare.
    Om du vill veta mer om hur du inkluderar Office-uppdateringsfiler i ett Access-körningsprogram klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
    916176 Körningsfilerna som ingår i den utgivna versionen av Access används i guiden när ett installationspaket för ett program i Access 2003 eller Access 2002 skapas (Länken kan leda till en webbplats som är helt eller delvis på engelska)

Workaround

Undvik problemet med någon av följande metoder:

Metod 1: Använd Microsoft Excel

Öppna den länkade Excel-arbetsboken i Microsoft Excel och gör ändringarna. När du har gjort alla ändringar sparar du dem och stänger arbetsboken.

Metod 2: Använd Office Access 2007, Access 2003 eller Access 2002

Importera den länkade Excel-arbetsboken till Access och gör ändringarna av data. När du har gjort alla ändringar exporterar du data som en Excel.xls-fil.

Exportera tabellen från Access till Excel genom att köra följande kod i 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=<Access-sökväg>"
    'Note: In Office Access 2007, use the following line of code:
    'Db.Open "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=<AccessPath>"
    SQL = "<MinFråga>"
    CopyRecordSetToXL SQL, Db
    Db.Close
    MsgBox "Data har exporterats till Excel-filen.", vbInformation, "Exporten lyckades."
    Exit Sub
Leave:
        MsgBox Err.Description, vbCritical, "Fel"
        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 = "<Excel-sökväg>"
    'Instantiera en ny session med COM-objektet Excel.exe.
    Set xlApp = New Excel.Application
    Set xlwbBook = xlApp.Workbooks.Open(stFile)
    Set xlwsSheet = xlwbBook.Worksheets("<Kalkylblad>")
    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 det här kodexemplet ersätter du följande platshållare:
  • <Access-sökväg>
  • <Excel-sökväg>
  • <MinFråga>
    <MinFråga> är en platshållare för frågan som körs mot tabellerna i Access-databasen. Resultatet av frågan exporteras till Excel-arbetsboken.
  • <Kalkylblad>
    <Kalkylblad> är en platshållare för kalkylbladet i Excel som du vill exportera resultatet till.
Kör kodexemplet genom att trycka på CTRL+G så att Direktfönstret öppnas, skriv WorkArounds och tryck på RETUR.

Mer Information

Av juridiska skäl har Microsoft inaktiverat funktionen i Access 2003 och Access 2002 som gör att användare kan ändra data i länkade tabeller som pekar på ett område i en Excel-arbetsbok. När du gör ändringar direkt i Excel-arbetsboken visas emellertid ändringar i den länkade tabellen i Access.

Egenskaper

Artikel-id: 904953 - Senaste granskning: den 21 februari 2007 - Revision: 6.1
Informationen i denna artikel gäller:
  • 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
Nyckelord: 
kbexpertiseadvanced kbdatabase kbtshoot kbprb KB904953

Ge feedback

 

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