Αναγν. άρθρου: 904953 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 6.0
Δεν είναι δυνατό να αλλάξετε, να προσθέσετε ή να διαγράψετε δεδομένα από πίνακες που συνδέονται με ένα βιβλίο εργασίας του Excel στην Office Access 2007, Office Access 2003 ή Access 2002
Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Στο 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
(http://support.microsoft.com/kb/887616/
)
Περιγραφή του Office 2003 Service Pack 2
Έχετε εγκαταστήσει την ενημερωμένη έκδοση για την Access 2002 (KB904018) που κυκλοφόρησε στις 18 Οκτωβρίου 2005.
Για περισσότερες πληροφορίες σχετικά με την ενημερωμένη έκδοση για την Access 2002 (KB904018), κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
904018
(http://support.microsoft.com/kb/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
(http://support.microsoft.com/kb/916176/
)
Ο οδηγός χρησιμοποιεί αρχεία χρόνου εκτέλεσης που περιλαμβάνονται με την έκδοση της Access, όταν δημιουργείτε ένα πακέτο εγκατάστασης για μια εφαρμογή στην Access 2003 ή στην Access 2002
Ανοίξτε το συνδεδεμένο βιβλίο εργασίας του 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.
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:904953
(http://support.microsoft.com/kb/904953/en-us/
)
Στείλτε μας τα σχόλιά σας για αυτές τις πληροφορίες
Λύσατε το πρόβλημά σας με αυτές τις πληροφορίες;
Ναι
Όχι
Δεν γνωρίζω
Ήταν οι πληροφορίες σχετικές;
Ναι
Όχι
Πόση προσπάθεια καταβάλατε για να χρησιμοποιήσετε αυτό το άρθρο;
Πολλή λίγη
Λίγη
Μέτρια
Πολλή
Πάρα πολλή
Τι μπορούμε να κάνουμε για να βελτιώσουμε αυτές τις πληροφορίες;
Για να προστατεύσετε το ιδιωτικό σας απόρρητο, μην συμπεριλαμβάνετε προσωπικές πληροφορίες επικοινωνίας με τα σχόλιά σας.
Σας ευχαριστούμε! Τα σχόλιά σας χρησιμοποιούνται ώστε να μας βοηθήσουν να βελτιώσουμε το περιεχόμενο υποστήριξης που παρέχουμε. Για περισσότερες επιλογές υποστήριξης, επισκεφθείτε την Αρχική σελίδα βοήθειας και υποστήριξης.