U kunt in Office Access 2003 of in Access 2002 in tabellen die aan een Excel-werkboek zijn gekoppeld, geen gegevens wijzigen, geen gegevens aan deze tabellen toevoegen of gegevens uit deze tabellen verwijderen

Symptomen

In Microsoft Office Access 2003 of in Microsoft Access 2002 kunt u geen gegevens wijzigen, toevoegen of verwijderen die deel uitmaken van tabellen die zijn gekoppeld aan een werkmap van Microsoft Excel.

Dit probleem kan ook onder de volgende omstandigheden optreden:
  • U stelt een query samen om gegevens op te vragen uit tabellen die zijn gekoppeld aan een Excel-werkmap.
  • U stelt een formulier samen om gegevens op te vragen uit tabellen die zijn gekoppeld aan een Excel-werkmap.
  • U gebruikt DAO of ADO om tabellen die zijn gekoppeld aan een Excel-werkmap via programmacode bij te werken.
Het volgende bericht wordt weergegeven wanneer u een query uitvoert om records in een gekoppelde Excel-werkmap bij te werken:
Bewerking moet worden uitgevoerd op een query die kan worden bijgewerkt
Wanneer u DAO gebruikt om via programmacode tabellen bij te werken die zijn gekoppeld aan een Excel-werkmap, verschijnt een bericht met de volgende strekking:
Runtimefout '3027' Update kan niet worden uitgevoerd. Database of object is Alleen-lezen.
Wanneer u probeert de gekoppelde gegevens bij te werken met ADO, is de tekst van het bericht hetzelfde, maar heeft het foutnummer de volgende notatie:
-2147217911 (80040e09)
Wanneer u een query uitvoert om records in te voegen in een Excel-werkmap, wordt het volgende foutbericht weergegeven, zelfs als de Excel-werkmap niet aan een Access-database is gekoppeld:
Bewerking moet worden uitgevoerd op een query die kan worden bijgewerkt

Oorzaak

Oorzaken van dit probleem zijn:
  • U hebt Microsoft Office 2003 Service Pack 2 (SP2) geïnstalleerd of een update voor Access 2003 die is uitgebracht na Office 2003 SP2.

    Klik voor meer informatie over Microsoft Office 2003 Service Pack 2 op het volgende artikelnummer in de Microsoft Knowledge Base:

    887616 Beschrijving van Office 2003 Service Pack 2
  • De update voor Access 2002 (KB904018) van 18 oktober 2005 is geïnstalleerd.

    Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over de update voor Access 2002 (KB904018):

    904018 Beschrijving van de update voor Access 2002 van 18 oktober 2005
  • U hebt een Access runtime-toepassing met daarin Microsoft Office 2003 Service Pack 2 (SP2) geïnstalleerd, een update voor Access 2003 die na Office 2003 SP2 is uitgebracht of de update voor Access 2002 (KB904018) van 18 oktober 2005 of later.
    Klik voor meer informatie over het opnemen van Office-updatebestanden in een runtime-toepassing van Access op het volgende artikelnummer in de Microsoft Knowledge Base:

    916176 Wanneer u een installatiepakket maakt voor een toepassing in Access 2003 of Access 2002, gebruikt de wizard de runtimebestanden uit de releaseversie van Access

Workaround

Ga op een van de volgende manieren te werk om dit probleem te voorkomen:

Methode 1: Microsoft Excel gebruiken

Open de gekoppelde Excel-werkmap in Microsoft Excel en breng vervolgens de wijzigingen aan in de werkmap. Sla de wijzigingen op als u klaar bent en sluit de werkmap.

Methode 2: Access 2003 of Access 2002 gebruiken

Importeer de gekoppelde Excel-werkmap in Access en breng vervolgens de wijzigingen aan in de gegevens. Sla de wijzigingen op en exporteer de gegevens naar een XLS-bestand van Excel.

Voer de volgende code uit in Access om de tabel van Access naar Excel te exporteren.
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=<PadAccess>"
SQL = "<Mijnquery>"
CopyRecordSetToXL SQL, Db
Db.Close
MsgBox "Exporteren van gegevens uit Access naar Excel-bestand is geslaagd.", vbInformation, "Exporteren geslaagd."
Exit Sub
Leave:
MsgBox Err.Description, vbCritical, "Fout"
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 = "<PadExcel>"
'Een nieuwe sessie starten met het COM-Object Excel.exe.
Set objXLApp = New Excel.Application
Set xlwbBook = xlApp.Workbooks.Open(stFile)
Set xlwsSheet = xlwbBook.Worksheets("<Werkbladen>")
xlwsSheet.Activate
'De eerste cel ophalen om de gegevens in te voeren.
xlwsSheet.Cells.SpecialCells(xlCellTypeLastCell).Select
y = xlApp.ActiveCell.Column - 1
xlApp.ActiveCell.Offset(1, -y).Select
x = xlwsSheet.Application.ActiveCell.Cells.Address
'De recordset openen op basis van de SQL-query en de gegevens opslaan in het Excel-werkblad.
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
Opmerking In dit codevoorbeeld moet u de volgende tijdelijke aanduidingen vervangen:
  • <PadAccess>
  • <PadExcel>
  • <Mijnquery>
    <Mijnquery> is een tijdelijke aanduiding voor de query die u uitvoert op de tabellen in de Access-database. Het resultaat van de query wordt geëxporteerd naar de Excel-werkmap.
  • <Werkbladen>
    <Werkbladen> is een tijdelijke aanduiding voor het werkblad in Excel waarnaar u de resultaten wilt exporteren.
Als u dit codevoorbeeld wilt uitvoeren, drukt u op Ctrl+G om het venster Direct te openen, typt u WorkArounds en drukt u op Enter.

Meer informatie

Vanwege juridische aspecten is het niet meer mogelijk om in Access 2003 en Access 2002 gegevens in gekoppelde tabellen te wijzigen die verwijzen naar een bereik in een Excel-werkmap. Als u wijzigingen echter direct doorvoert in de Excel-werkmap, verschijnen de wijzigingen in de gekoppelde tabel in Access.
Eigenschappen

Artikel-id: 904953 - Laatst bijgewerkt: 13 nov. 2008 - Revisie: 1

Feedback