لا يمكن تغيير أو إضافة أو حذف البيانات في الجداول المرتبطة إلى مصنف 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) أو حزمة خدمة أحدث أو 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":

    وصف التحديث ل Access 2002 904018 : 18 تشرين الأول/أكتوبر 2005

  • تثبيت تطبيق وقت تشغيل Access يحتوي على حزمة الخدمة service Pack 2 (SP2) ل Microsoft Office 2003 أو Access 2003 أي تحديثات تم إصدارها بعد حزمة الخدمة Office 2003 SP2 أو أحدث حزمة خدمة التحديث ل Access 2002 رقم (KB904018) المؤرخة 18 تشرين الأول/أكتوبر 2005 أو في وقت لاحق.
    لمزيد من المعلومات حول كيفية تضمين ملفات تحديث Office مع تطبيق وقت تشغيل Access، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

    916176 يستخدم المعالج ملفات وقت التشغيل التي تم تضمينها في نسخة إصدار Access عند إنشاء حزمة تثبيت لأحد تطبيقات أو في Access 2002 في Access 2003

الحل البديل

لإيجاد حل بديل لهذا السلوك المتوقع، استخدم إحدى الطرق التالية.

الطريقة الأولى: استخدام Microsoft Excel

فتح مصنف Excel مرتبط في Microsoft Excel، وقم بإجراء التغييرات في المصنف. عند إكمال التغييرات، يتم حفظ التغييرات وقم بإغلاق المصنف.

الطريقة الثانية: استخدام 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>
  • <ExcelPath>
  • <MyQuery>
    < MyQuery > هو نائب للاستعلام الذي قمت بتشغيل مقابل الجداول في قاعدة بيانات Access. يتم تصدير نتائج الاستعلام إلى مصنف Excel.
  • <WorkSheets>
    < أوراق العمل > هو عنصر نائب لورقة العمل في Excel الذي تريد تصدير الناتج.
لتشغيل مثال التعليمات البرمجية هذا، اضغط CTRL + G لفتح إطار فوري ، اكتب الحلولومن ثم اضغط ENTER.

مزيد من المعلومات

بسبب المشاكل القانونية، قامت Microsoft بتعطيل الوظيفة في Access 2003 وفي Access 2002 التي تسمح للمستخدمين بتغيير البيانات الموجودة في الجداول المرتبطة التي تشير إلى نطاق في ورقة عمل Excel. ومع ذلك، عند إجراء تغييرات مباشرة في مصنف Excel، تظهر التغييرات في جدول مرتبط في Access.
خصائص

رقم الموضوع: 904953 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 1

تعليقات