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:
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ä
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
(http://support.microsoft.com/kb/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
(http://support.microsoft.com/kb/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
(http://support.microsoft.com/kb/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)
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ä.
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.
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
| kbexpertiseadvanced kbdatabase kbtshoot kbprb KB904953 |