Sie können Daten in Tabellen, die in Office Access 2007, Office Access 2003 oder Access 2002 mit einer Excel-Arbeitsmappe verknüpft sind, nicht ändern, ergänzen oder löschen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 904953 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
904953 You cannot change, add, or delete data in tables that are linked to an Excel workbook in Office Access 2007, Office Access 2003, or Access 2002
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

In Microsoft Office Access 2007, Microsoft Office Access 2003 oder Microsoft Access 2002 können Sie Daten in Tabellen, die mit einer Microsoft Excel-Arbeitsmappe verknüpft sind, nicht ändern, ergänzen oder löschen.

Dieses Verhalten kann auch auftreten, wenn eine der folgenden Bedingungen zutrifft:
  • Sie erstellen eine Abfrage, um Daten aus Tabellen zu beziehen, die mit einer Excel-Arbeitsmappe verknüpft sind.
  • Sie erstellen ein Formular, um auf Daten aus Tabellen zuzugreifen, die mit einer Excel-Arbeitsmappe verknüpft sind.
  • Sie verwenden DAO oder ADO um Tabellen, die mit einer Excel-Arbeitsmappe verknüpft sind, programmatisch zu aktualisieren.
Ihnen wird die folgende Meldung angezeigt, wenn Sie eine Abfrage ausführen, um Datensätze zu aktualisieren, die mit einer Excel-Arbeitsmappe verknüpft sind:
Die Operation muss eine aktualisierbare Abfrage verwenden.
Ihnen wird die folgende Meldung angezeigt, wenn Sie DAO verwenden, um Tabellen, die mit einer Excel-Arbeitsmappe verknüpft sind, programmatisch zu aktualisieren.
Laufzeitfehler '3027' Aktualisieren nicht möglich; Datenbank oder Objekt ist schreibgeschützt. (Runtime Error '3027' Cannot update. Database or object is read-only.)
Wenn Sie versuchen, die verknüpften Daten in ADO zu aktualisieren, ist die Meldung die gleiche, die Fehlernummer aber folgende:
-2147217911 (80040e09)
Wenn Sie eine Abfrage ausführen, um Einträge in eine Excel-Arbeitsmappe einzufügen, wird die folgende Fehlermeldung auch dann angezeigt, wenn die Excel-Arbeitsmappe nicht mit einer Access-Datenbank verknüpft ist:
Die Operation muss eine aktualisierbare Abfrage verwenden.

Ursache

Dieses erwartete Verhalten kann auftreten, wenn eine der beiden folgenden Bedingungen vorliegt:
  • Sie verwenden Office Access 2007.
  • Sie haben Microsoft Office 2003 Service Pack 2 (SP2) oder ein Access 2003-Update installiert, das nach Office 2003 SP2 veröffentlicht wurde.

    Weitere Informationen zu Microsoft Office 2003 Service Pack 2 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    887616 Beschreibung von Microsoft Office 2003 Service Pack 2
  • Sie haben das Update für Access 2002 (KB904018) vom 18.10.2005 installiert.

    Weitere Informationen zum Update für Access 2002 (KB904018) finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    904018 Beschreibung des Updates für Access 2002 vom 18.10.2005
  • Sie haben eine Access Runtime-Anwendung installiert, die Microsoft Office 2003 Service Pack 2 (SP2) enthält, ein Access 2003-Update, das nach Office 2003 SP2 veröffentlicht wurde oder das Update Access 2002 (KB904018) vom 18.10.2005 oder später.
    Weitere Informationen dazu, wie Sie Office-Update-Dateien in Ihre Access Runtime-Anwendung einbinden, finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    916176 Der Assistent verwendet die Laufzeitdateien, die in der Release-Version von Access enthalten sind, wenn Sie ein Installationspaket für eine Anwendung in Access 2003 oder Access 2002 erstellen

Abhilfe

Wenden Sie eine der folgenden Methoden an, um dieses erwartete Verhalten zu umgehen.

Methode 1: Verwenden von Microsoft Excel

Öffnen Sie die verknüpfte Excel-Arbeitsmappe in Microsoft Excel, und führen Sie danach Ihre Änderungen an der Arbeitsmappe durch. Wenn Sie die Änderungen abgeschlossen haben, speichern Sie die Änderungen und schließen Sie anschließend die Arbeitsmappe.

Methode 2: Verwenden von Office Access 2007, Access 2003 oder Access 2002

Importieren Sie die verknüpfte Excel-Arbeitsmappe in Access, und führen Sie danach die Änderungen an den Daten durch. Wenn Sie Ihre Änderungen abgeschlossen haben, exportieren Sie die Daten als Excel-Datei (.xls).

Führen Sie in Access den folgenden Code aus, um die Tabelle von Access nach Excel zu exportieren:
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>"
    'Note: In Office Access 2007, use the following line of code:
    '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
Hinweis: Ersetzen Sie in diesem Beispielcode die folgenden Platzhalter:
  • <AccessPath>
  • <ExcelPath>
  • <MyQuery>
    <MyQuery> steht für die Abfrage, die Sie für die Tabellen in der Access-Datenbank ausführen. Das Ergebnis der Abfrage wird in die Excel-Arbeitsmappe exportiert.
  • <WorkSheets>
    <WorkSheets> steht für das Arbeitsblatt in Excel, in das Sie das Ergebnis exportieren möchten.
Gehen Sie folgendermaßen vor, um diesen Beispielcode auszuführen: Drücken Sie die Tasten [STRG]+[G], um das Direktfenster zu öffnen, geben Sie WorkArounds ein, und drücken Sie anschließend die [EINGABETASTE].

Weitere Informationen

Aufgrund rechtlicher Probleme hat Microsoft in Access 2003 und in Access 2002 die Funktionalität deaktiviert, die es Benutzern ermöglicht, Daten zu verändern, die auf einen Bereich in einer Excel-Arbeitsmappe verweisen. Wenn Sie jedoch die Änderungen direkt in der Excel-Arbeitsmappe vornehmen, erscheinen diese in der verknüpften Tabelle in Access.

Eigenschaften

Artikel-ID: 904953 - Geändert am: Mittwoch, 21. Februar 2007 - Version: 6.3
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbexpertiseadvanced kbdatabase kbtshoot kbprb KB904953
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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