Δεν είναι δυνατό να αλλάξετε, να προσθέσετε ή να διαγράψετε δεδομένα από πίνακες που συνδέονται με ένα βιβλίο εργασίας του Excel στην Office Access 2007, Office Access 2003 ή Access 2002

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 904953 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Συμπτώματα

Στο Microsoft Office Access 2007 ή στο Microsoft Office Access 2003 ή σε Microsoft Access 2002, δεν είναι δυνατό να αλλάξετε, να προσθέτετε ή να διαγράφετε δεδομένα από πίνακες που συνδέονται σε ένα βιβλίο εργασίας του Microsoft Excel.

Επιπλέον, ενδέχεται να αντιμετωπίσετε αυτήν τη συμπεριφορά όταν ισχύει οποιαδήποτε από τις ακόλουθες συνθήκες:
  • Δημιουργήσετε ένα ερώτημα για την ανάκτηση δεδομένων από πίνακες που συνδέονται με ένα βιβλίο εργασίας του Excel.
  • Μπορείτε να δημιουργήσετε μια φόρμα που έχει πρόσβαση σε δεδομένα από πίνακες που συνδέονται με ένα βιβλίο εργασίας του Excel.
  • Χρησιμοποιήστε DAO ή ADO για την ενημέρωση μέσω προγραμματισμού πίνακες που συνδέονται με ένα βιβλίο εργασίας του Excel.
Όταν εκτελείτε ένα ερώτημα για να ενημερώσετε εγγραφές σε ένα συνδεδεμένο βιβλίο εργασίας του Excel, λαμβάνετε το ακόλουθο μήνυμα:
Η λειτουργία πρέπει να χρησιμοποιήσει ένα ερώτημα με δυνατότητα ενημέρωσης
Όταν χρησιμοποιείτε DAO για την ενημέρωση των πινάκων που συνδέονται με ένα βιβλίο εργασίας του Excel μέσω προγραμματισμού, λαμβάνετε το ακόλουθο μήνυμα:
Σφάλμα χρόνου εκτέλεσης '3027' δεν είναι δυνατό να ενημερώσει. Βάση δεδομένων ή το αντικείμενο είναι μόνο για ανάγνωση.
Όταν προσπαθείτε να ενημερώσετε τα συνδεδεμένα δεδομένα ADO, το μήνυμα είναι το ίδιο, αλλά ο αριθμός σφάλματος μπορεί να είναι παρόμοιο με το ακόλουθο:
-2147217911 (80040e09)
Όταν εκτελείτε ένα ερώτημα για την εισαγωγή εγγραφών σε ένα βιβλίο εργασίας του Excel, λαμβάνετε το ακόλουθο μήνυμα λάθους, ακόμα και αν το βιβλίο εργασίας του Excel δεν είναι συνδεδεμένο με μια βάση δεδομένων της Access:
Η λειτουργία πρέπει να χρησιμοποιήσει ένα ερώτημα με δυνατότητα ενημέρωσης

Αιτία

Αυτό αναμένεται η συμπεριφορά παρουσιάζεται όταν οποιαδήποτε από τις ακόλουθες συνθήκες είναι αληθής:
  • Χρήση του Office Access 2007.
  • Έχετε εγκαταστήσει το Microsoft Office 2003 Service Pack 2 (SP2) ή μεταγενέστερη έκδοση service pack ή ενημερωμένες εκδόσεις Access 2003 που κυκλοφόρησαν μετά το Office 2003 SP2.

    Για περισσότερες πληροφορίες σχετικά με το Microsoft Office 2003 Service Pack 2, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
    887616Περιγραφή του Office 2003 Service Pack 2
  • Έχετε εγκαταστήσει την ενημερωμένη έκδοση για την Access 2002 (KB904018) που κυκλοφόρησε στις 18 Οκτωβρίου 2005.

    Για περισσότερες πληροφορίες σχετικά με την ενημερωμένη έκδοση για την Access 2002 (KB904018), κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
    904018Περιγραφή της ενημερωμένης έκδοσης για την Access 2002: 18 Οκτωβρίου 2005
  • Έχετε εγκαταστήσει μια εφαρμογή χρόνου εκτέλεσης της Access που περιλαμβάνει το Microsoft Office 2003 Service Pack 2 (SP2) ή μεταγενέστερη έκδοση service pack, ενημερωμένες εκδόσεις Access 2003 που κυκλοφόρησαν μετά το Office 2003 SP2 ή την ενημερωμένη έκδοση για την Access 2002 (KB904018) που φέρει ημερομηνία 18 Οκτωβρίου 2005 ή αργότερα.
    Για περισσότερες πληροφορίες σχετικά με τον τρόπο συμπερίληψης αρχείων ενημερωμένων εκδόσεων του Office με μια εφαρμογή χρόνου εκτέλεσης της Access, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
    916176Ο οδηγός χρησιμοποιεί αρχεία χρόνου εκτέλεσης που περιλαμβάνονται με την έκδοση της Access, όταν δημιουργείτε ένα πακέτο εγκατάστασης για μια εφαρμογή στην Access 2003 ή στην Access 2002

Εναλλακτικός τρόπος αντιμετώπισης

Για να επιλύσετε αυτή η αναμενόμενη συμπεριφορά, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους.

Μέθοδος 1: Χρήση του Microsoft Excel

Ανοίξτε το συνδεδεμένο βιβλίο εργασίας του Excel στο Microsoft Excel και, στη συνέχεια, κάντε τις αλλαγές σας στο βιβλίο εργασίας. Όταν ολοκληρώσετε τις αλλαγές, αποθηκεύστε τις αλλαγές και, στη συνέχεια, κλείστε το βιβλίο εργασίας.

Μέθοδος 2: Χρήση του Office Access 2007, Access 2003 ή Access 2002

Εισαγωγή συνδεδεμένο βιβλίο εργασίας του Excel στην Access και, στη συνέχεια, κάντε τις αλλαγές στα δεδομένα. Όταν ολοκληρώσετε τις αλλαγές, εξαγάγετε τα δεδομένα ως αρχείο .xls στο Excel.

Για να εξαγάγετε τον πίνακα από την Access στο Excel, εκτελέστε τον ακόλουθο κώδικα στην 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=<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
Σημείωση Σε αυτό το παράδειγμα κώδικα, αντικαταστήστε τα ακόλουθα σύμβολα κράτησης θέσης:
  • <accesspath></accesspath>
  • <excelpath></excelpath>
  • <myquery></myquery>
    <myquery></myquery> είναι σύμβολο κράτησης θέσης για το ερώτημα που εκτελείτε σε πίνακες στη βάση δεδομένων της Access. Το αποτέλεσμα του ερωτήματος εξάγονται στο βιβλίο εργασίας του Excel.
  • <worksheets></worksheets>
    <worksheets></worksheets> είναι ένα σύμβολο κράτησης θέσης για το φύλλο εργασίας του Excel που θέλετε να εξαγάγετε το αποτέλεσμα.
Για να εκτελέσετε αυτό το παράδειγμα κώδικα, πατήστε CTRL + G για να ανοίξετε το Άμεση παράθυρο, πληκτρολογήστε Λύσεις, και στη συνέχεια πιέστε το πλήκτρο ENTER.

Περισσότερες πληροφορίες

Λόγω των νομικών ζητημάτων, η Microsoft έχει απενεργοποιήσει τη λειτουργία στην Access 2003 και σε Access 2002 που επιτρέπουν στους χρήστες να αλλάζουν τα δεδομένα στο συνδεδεμένοι πίνακες που οδηγούν σε μια περιοχή σε ένα βιβλίο εργασίας του Excel. Ωστόσο, όταν κάνετε αλλαγές απευθείας στο βιβλίο εργασίας του Excel, οι αλλαγές εμφανίζονται σε συνδεδεμένο πίνακα της Access.

Ιδιότητες

Αναγν. άρθρου: 904953 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 6.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2007 Runtime
  • Microsoft Office Access 2003
  • Microsoft Office Access 2003 Runtime
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2002 Runtime
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
Λέξεις-κλειδιά: 
kbexpertiseadvanced kbdatabase kbtshoot kbprb kbmt KB904953 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:904953

Αποστολή σχολίων

 

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