Nie można zmieniać, dodawać ani usuwać danych w tabelach połączonych ze skoroszytem programu Excel w programie Office Access 2007, Office Access 2003 lub Access 2002

Zakończono świadczenie pomocy technicznej dla pakietu Office 2003

Firma Microsoft zakończyła świadczenie pomocy technicznej dla pakietu Office 2003 8 kwietnia 2014. Ta zmiana wpłynęła na Twoje aktualizacje oprogramowania i opcje zabezpieczeń. Dowiedz się, co to oznacza dla Ciebie i jak zapewnić sobie kontynuację ochrony.

Symptomy
W programie Microsoft Office Access 2007, Microsoft Office Access 2003 lub Microsoft Access 2002 nie można zmieniać, dodawać ani usuwać danych w tabelach połączonych ze skoroszytem programu Microsoft Excel.

Problem ten może też występować wtedy, gdy jest spełniony dowolny z następujących warunków:
  • Utworzono kwerendę w celu pobrania danych z tabel, które są połączone ze skoroszytem programu Excel.
  • Utworzono formularz uzyskujący dostęp do danych w tabelach, które są połączone ze skoroszytem programu Excel.
  • Używany jest obiekt DAO lub ADO dla potrzeb programowego aktualizowania tabel połączonych ze skoroszytem programu Excel.
Podczas wykonywania kwerendy aktualizującej rekordy w tabelach połączonych ze skoroszytem programu Excel jest wyświetlany następujący komunikat:
Operacja musi używać kwerendy umożliwiającej aktualizację
Gdy obiekt DAO jest używany dla potrzeb programowego aktualizowania tabel połączonych ze skoroszytem programu Excel, jest wyświetlany następujący komunikat:
Błąd wykonania 3027: Nie można zaktualizować. Baza danych lub obiekt są dostępne tylko do odczytu.
Podczas próby zaktualizowania połączonych danych w obiekcie ADO komunikat jest taki sam, ale numer błędu może być podobny do następującego:
-2147217911 (80040e09)
W przypadku uruchomienia kwerendy w celu wstawienia rekordów do skoroszytu programu Excel pojawia się następujący komunikat o błędzie, nawet jeśli skoroszyt programu Excel nie jest połączony z bazą danych programu Access:
Operacja musi używać kwerendy umożliwiającej aktualizację
Przyczyna
Ten problem może wystąpić wtedy, gdy jest spełniony jeden z następujących warunków:
  • Jest używany program Office Access 2007.
  • Został zainstalowany dodatek Service Pack 2 (SP2) dla pakietu Microsoft Office 2003 lub dowolne aktualizacje programu Access 2003, które zostały wydane po wydaniu dodatku SP2 dla pakietu Office 2003.

    Aby uzyskać więcej informacji na temat dodatku Service Pack 2 dla pakietu Microsoft Office 2003, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
    887616 Opis dodatku Service Pack 2 dla pakietu Office 2003
  • Została zainstalowana aktualizacja programu Access 2002 (KB904018) z 18 października 2005.

    Aby uzyskać więcej informacji na temat aktualizacji programu Access 2002 (KB904018), kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
    904018 Description of the update for Access 2002: October 18, 2005
  • Zainstalowano aplikację Access Runtime obejmującą dodatek Service Pack 2 (SP2) dla pakietu Microsoft Office 2003 (Office 2003 SP2), dowolne aktualizacje programu Access 2003 wydane po dodatku Office 2003 SP2 albo aktualizację programu Access 2002 (KB904018) z dnia 18 października 2005 roku lub nowszą.
    Aby uzyskać więcej informacji dotyczących sposobu automatycznego uwzględnienia plików aktualizacji pakietu Office przez aplikację Access Runtime, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
    916176 The wizard uses the run-time files that are included with the release version of Access when you create an installation package for an application in Access 2003 or in Access 2002
Obejście problemu
W celu obejścia tego spodziewanego problemu należy użyć jednej z poniższych metod.

Metoda 1. Używanie programu Microsoft Excel

Otwórz połączony skoroszyt programu Excel w programie Microsoft Excel, a następnie wprowadź zmiany w skoroszycie. Ukończywszy wprowadzanie zmian, zapisz zmiany i zamknij skoroszyt.

Metoda 2. Używanie programu Office Access 2007, Access 2003 lub Access 2002

Zaimportuj połączony skoroszyt programu Excel do programu Access, a następnie wprowadź zmiany w danych. Ukończywszy wprowadzanie zmian, wyeksportuj dane jako plik .xls programu Excel.

Aby wyeksportować tabelę z programu Access do programu Excel, uruchom następujący kod w programie 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=<ŚcieżkaDoProgramuAccess>"    'Uwaga: W programie Office Access 2007 użyj następującej linii kodu:    'Db.Open "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=<ŚcieżkaDoProgramuAccess>"    SQL = "<MojaKwerenda>"    CopyRecordSetToXL SQL, Db    Db.Close    MsgBox "Program Access pomyślnie wyeksportował dane do pliku programu Excel.", vbInformation, "Eksport powiódł się."    Exit SubLeave:        MsgBox Err.Description, vbCritical, "Błąd"        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 = "<ŚcieżkaDoProgramuExcel>"    'Utworzenie wystąpienia nowej sesji za pomocą obiektu COM Excel.exe.    Set xlApp = New Excel.Application    Set xlwbBook = xlApp.Workbooks.Open(stFile)    Set xlwsSheet = xlwbBook.Worksheets("<Arkusze>")    xlwsSheet.Activate    'Pobranie pierwszej komórki w celu wyprowadzenia danych.    xlwsSheet.Cells.SpecialCells(xlCellTypeLastCell).Select    y = xlApp.ActiveCell.Column - 1    xlApp.ActiveCell.Offset(1, -y).Select    x = xlwsSheet.Application.ActiveCell.Cells.Address    'Otwarcie zestawu rekordów opartego na kwerendzie SQL i zapisanie danych w arkuszu programu Excel.    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
Uwaga W tym kodzie przykładowym należy odpowiednio zastąpić następujące symbole zastępcze:
  • <ŚcieżkaDoProgramuAccess>
  • <ŚcieżkaDoProgramuExcel>
  • <MojaKwerenda>
    <MojaKwerenda> to symbol zastępczy kwerendy uruchamianej na podstawie tabel w bazie danych programu Access. Wynik tej kwerendy jest eksportowany do skoroszytu programu Excel.
  • <Arkusze>
    <Arkusze> to symbol zastępczy arkusza programu Excel, do którego ma zostać wyeksportowany wynik.
Aby uruchomić ten kod przykładowy, naciśnij klawisze CTRL+G w celu otwarcia okienka Bezpośrednie, wpisz WorkArounds, a następnie naciśnij klawisz ENTER.
Więcej informacji
Ze względów prawnych firma Microsoft wyłączyła w programach Access 2003 i Access 2002 funkcję, która umożliwia użytkownikom zmienianie danych w połączonych tabelach wskazujących zakres w skoroszycie programu Excel. Jednak po wprowadzeniu zmian bezpośrednio w skoroszycie programu Excel zmiany będą widoczne w połączonej tabeli w programie 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
Właściwości

Identyfikator artykułu: 904953 — ostatni przegląd: 03/30/2007 17:29:26 — zmiana: 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
Opinia