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

Supporten för Office 2003 har upphört

Microsoft upphörde med supporten för Office 2003 den 8 april 2014. Denna ändring påverkar dina programuppdateringar och säkerhetsalternativ. Läs om vad detta innebär för dig och hur du behåller skyddet.

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 SubLeave:        MsgBox Err.Description, vbCritical, "Fel"        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 = "<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 = NothingEnd 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.
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
คุณสมบัติ

รหัสบทความ: 904953 - การตรวจสอบครั้งสุดท้าย: 02/21/2007 17:23:10 - ฉบับแก้ไข: 6.1

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

  • kbexpertiseadvanced kbdatabase kbtshoot kbprb KB904953
คำติชม