Excel-työkirjaan linkitettyjen taulukoiden tietoja ei voi muuttaa, lisätä tai poistaa Office Access 2007:ssä, Office Access 2003:ssa tai Access 2002:ssa

Artikkeleiden käännökset Artikkeleiden käännökset
Artikkelin tunnus: 904953 - Näytä tuotteet, joita tämä artikkeli koskee.
Laajenna kaikki | Kutista kaikki

Tällä sivulla

Oire

Microsoft Excel -työkirjaan linkitettyjen taulukoiden tietoja ei voi muuttaa, lisätä tai poistaa Microsoft Office Access 2007:ssä, Microsoft Office Access 2003:ssa tai Microsoft Access 2002:ssa.

Lisäksi tämä ongelma saattaa ilmetä, jos jokin seuraavista ehdoista toteutuu:
  • Muodostat kyselyn, joka noutaa tietoja Excel-työkirjaan linkitetyistä taulukoista.
  • Luot lomakkeen, joka käyttää Excel-työkirjaan linkitettyjen taulukoiden tietoja.
  • Päivität Excel-työkirjaan linkitetyt taulukot ohjelmallisesti DAO- tai ADO-objektien avulla.
Näyttöön tulee seuraavankaltainen sanoma, kun teet kyselyn linkitetyn Excel-työkirjan tietueiden päivittämistä varten:
Toiminnon on käytettävä päivitettävää kyselyä
Näyttöön tulee seuraavankaltainen sanoma, kun päivität Excel-työkirjaan linkitetyt taulukot ohjelmallisesti DAO-objektien avulla:
Suorituksenaikainen virhe 3027 Päivitystä ei voi suorittaa. Tietokanta tai objekti on vain luku -muotoa.
Kun yrität päivittää linkitetyt tiedot ADO-objektissa, sanoma on sama, mutta virheen numero saattaa olla seuraavankaltainen:
-2147217911 (80040e09)
Kun yrität lisätä tietueita Excel-työkirjaan suorittamalla kyselyn, seuraava virhesanoma tulee näyttöön, vaikka Excel-työkirja ei ole linkitetty Access-tietokantaan:
Toiminnon on käytettävä päivitettävää kyselyä

Syy

Tämä odotettu toiminta tapahtuu, kun jompikumpi seuraavista ehdoista toteutuu:
  • Käytössä on Office Access 2007.
  • Olet asentanut Microsoft Office 2003 Service Pack 2:n (SP2) tai jonkin Access 2003 -päivityksen, joka on julkaistu Office 2003 SP2:n jälkeen.

    Saat lisätietoja Microsoft Office 2003 Service Pack 2 -paketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
    887616 Office 2003 Service Pack 2:n kuvaus
  • Olet asentanut 18.10.2005 päivätyn Access 2002 -päivityksen KB904018.

    Saat lisätietoja Access 2002 -päivityksestä KB904018 napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
    904018 Access 2002 -päivityksen 18.10.2005 kuvaus
  • Olet asentanut Access-suorituksenaikaisuussovelluksen, joka sisältää Microsoft Office 2003 Service Pack 2:n (SP2), jonkin Office 2003 SP2:n jälkeen julkaistun Access 2003 -päivityksen tai 18.10.2005 (tai myöhemmin) päivätyn Access 2002 -päivityksen KB904018.
    Saat lisätietoja Office-päivitystiedostojen sisällyttämisestä Access-suorituksenaikaisuussovellukseen napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
    916176 Ohjattu toiminto käyttää Access-julkaisuversioon sisältyviä suorituksenaikaisuustiedostoja, kun sovellukselle luodaan päivityspaketti Access 2003:ssa tai Access 2002:ssa (tämä artikkeli saattaa olla englanninkielinen)

Workaround

Voit kiertää tämän odotetun toiminnan jommallakummalla seuraavista tavoista.

Tapa 1: Microsoft Excelin käyttäminen

Avaa linkitetty Excel-työkirja Microsoft Excelissä ja tee muutoksesi työkirjaan. Kun olet tehnyt muutokset, tallenna muutokset ja sulje työkirja.

Tapa 2: Office Access 2007:n, Access 2003:n tai Access 2002:n käyttäminen

Tuo linkitetty Excel-työkirja Accessiin ja tee sitten haluamasi muutokset tietoihin. Kun olet tehnyt muutokset, vie tiedot Excelin .xls-tiedostona.

Voit viedä taulukon Accessista Exceliin suorittamalla seuraavan koodin Accessissa.
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-polku>"
    'Huomautus: Käytä Office Access 2007:ssä seuraavaa koodiriviä:
    'Db.Open "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=<AccessPath>"
    SQL = "<OmaKysely>"
    CopyRecordSetToXL SQL, Db
    Db.Close
    MsgBox "Access on vienyt tiedot Excel-tiedostoon.", vbInformation, "Vienti onnistui."
    Exit Sub
Leave:
        MsgBox Err.Description, vbCritical, "Virhe"
        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-polku>"
    'Käynnistä uusi istunto COM-objektin Excel.exe kanssa.
    Set xlApp = New Excel.Application
    Set xlwbBook = xlApp.Workbooks.Open(stFile)
    Set xlwsSheet = xlwbBook.Worksheets("<Laskentataulukot>")
    xlwsSheet.Activate
    'Ensimmäinen solu tietojen syöttämistä varten.
    xlwsSheet.Cells.SpecialCells(xlCellTypeLastCell).Select
    y = xlApp.ActiveCell.Column - 1
    xlApp.ActiveCell.Offset(1, -y).Select
    x = xlwsSheet.Application.ActiveCell.Cells.Address
    'Avataan tietuejoukkoa SQL-kyselyn perusteella ja tallennetaan tiedot Excel-laskentataulukkoon.
    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
Huomautus Korvaa tässä mallikoodissa seuraavat paikkamerkit:
  • <Access-polku>
  • <Excel-polku>
  • <OmaKysely>
    <OmaKysely> on paikkamerkki kyselylle, jonka suoritat Access-tietokannan taulukoille. Kyselyn tulos viedään Excel-työkirjaan.
  • <Laskentataulukot>
    <Laskentataulukot> on paikkamerkki Excelin laskentataulukolle, johon tulokset viedään.
Voit suorittaa tämän mallikoodin avaamalla välittömän suoritusruudun painamalla CTRL+G, kirjoittamalla Kiertotavat ja painamalla sitten ENTER-näppäintä.

Enemmän tietoa

Microsoft on oikeudellisista syistä poistanut Access 2003:sta ja Access 2002:sta toiminnon, joka antaa käyttäjien muuttaa Excel-työkirjan alueeseen viittaavien linkitettyjen taulukkojen tietoja. Kun teet muutoksia suoraan Excel-työkirjaan, muutokset kuitenkin näkyvät linkitetyssä taulukossa Accessissa.

Ominaisuudet

Artikkelin tunnus: 904953 - Viimeisin tarkistus: 21. helmikuuta 2007 - Versio: 6.3
Artikkelin tiedot koskevat seuraavia tuotteita:
  • 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
Hakusanat: 
kbexpertiseadvanced kbdatabase kbtshoot kbprb KB904953

Anna palautetta

 

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