كيفية الاستعلام والبيانات Excel تحديث باستخدام ADO من ASP

معرف المقالة: 195951 - عرض المنتجات التي تنطبق عليها هذه المقالة.
توسيع الكل | طي الكل

في هذه الصفحة

الموجز

يوضح هذا المقال كيفية الاستعلام وتحديث معلومات في جدول بيانات Excel باستخدام كائنات بيانات ActiveX (ADO) من صفحة صفحات ملقم النشطة (ASP). كما توضح هذه المقالة القيود المقترنة مع هذا النوع من التطبيق.

هام: رغم تطبيقات ASP/ADO دعم الوصول متعدد المستخدمين, جدول بيانات Excel لا. ولذلك، لا يدعم هذا الأسلوب من الاستعلام عن معلومات وتحديث الوصول المتزامنة متعدد المستخدمين.

معلومات أخرى

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

خطوات إنشاء تطبيق نموذج

  • إنشاء ملف Excel ADOtest.xls مع البيانات التالية في sheet1:

    طي هذا الجدولتوسيع هذا الجدول
    column1column2column3
    rr هذا15
    bbاختبار20
    عرضيعمل25

    ملاحظة إذا كان عمود في جدول Excel يحتوي على النص والأرقام لا يستطيع برنامج تشغيل ODBC Excel بشكل صحيح تفسير نوع البيانات الذي يجب أن يكون العمود. الرجاء التأكد من أن كافة الخلايا في عمود من نفس نوع البيانات. يمكن أن تحدث الأخطاء الثلاثة التالية إذا لم تكن كل خلية في عمود من نفس النوع أو لديك أنواع مختلطة بين "النص" و "عام":
    1. موفر Microsoft OLE DB لـ خطأ برامج تشغيل ODBC '80040e21'
      يمكن أن تكون خصائص الطلب غير معتمدة من قبل برنامج تشغيل ODBC هذا.
    2. موفر Microsoft OLE DB لـ خطأ برامج تشغيل ODBC '80004005'
      الاستعلام غير قابل للتحديث لأنه يحتوي على أي أعمدة قابلة للبحث فيها استخدام المفتاح بكثير.
    3. موفر Microsoft OLE DB لـ خطأ برامج تشغيل ODBC '80004005'
      فشل تحديث المستندة إلى استعلام. تعذر العثور على الصف إلى تحديث.
  • إنشاء نطاق مسمى myRange1, في جدول البيانات:

    1. تمييز ناحية الصف (الصفوف) "و" العمود (الأعمدة) حيث توجد البيانات الخاصة بك.
    2. في القائمة إدراج، أشر إلى اسم ثم انقر فوق تعريف.
    3. أدخل myRange1 اسم النطاق المسمى اسم.
    4. انقر فوق موافق.
    myRange1 نطاق مسمى يحتوي على البيانات التالية:

    طي هذا الجدولتوسيع هذا الجدول
    column1column2column3
    rrهذا15
    bbاختبار20
    عرضيعمل25


    ملاحظة يفترض ADO الصف الأول في استعلام Excel تحتوي على رؤوس الأعمدة. لذلك، يجب أن يتضمن نطاق مسمى عناوين الأعمدة. هذا هو السلوك مختلفة من DAO.

    ملاحظة لا يمكن أن تكون عناوين الأعمدة عدداً. برنامج تشغيل Excel لا يمكن ترجمة هذه وإرجاع ، بدلاً من ذلك مرجع خلية. على سبيل المثال، عنوان عمود من "F1" تفسيره بشكل غير صحيح.
  • إنشاء ODBC النظام اسم مصدر البيانات (DSN) يشير إلى ملف ADOTest.xls.
    1. من "لوحة التحكم،" افتح ODBC المسؤول.
    2. في علامة التبويب "نظام DSN" ، انقر فوق إضافة.
    3. حدد برنامج تشغيل Microsoft Excel (*.xls) ثم انقر فوق "إنهاء". في حالة عدم وجود هذا الخيار تحتاج إلى تثبيت برنامج تشغيل ODBC Microsoft Excel من برنامج الإعداد "Excel.
    4. اختيار ADOExcel اسم مصدر البيانات.
    5. تأكد من تعيين الإصدار إلى الإصدار الصحيح من Excel.
    6. انقر فوق "تحديد... المصنف" ، واستعرض وصولاً إلى ADOTest.xls الملف ثم انقر فوق موافق.
    7. انقر فوق "خيارات >>" الزر وقم بإلغاء تحديد خانة الاختيار "للقراءة فقط".
    8. انقر فوق موافق ثم انقر فوق موافق مرة أخرى.
  • تعيين الأذونات على الملف ADOTest.xls.
إذا كان لديك "صفحة الملقم النشطة" يتم الوصول إليها من قبل مجهول, تحتاج إلى التأكد من أن "الحساب المجهول" (IUSR_ <machinename>) لديه على الأقل القراءة/الكتابة (RW) الوصول إلى جدول البيانات. إذا كنت تريد حذف معلومات من جدول البيانات تحتاج إلى منح الأذونات وفقاً لذلك.

إذا كان يتم مصادقة الوصول إلى "صفحة الملقم النشطة" الخاصة بك ، عليك التأكد من أن كافة المستخدمين الذين يصلون إلى التطبيق الخاص بك أن يكون لديك الأذونات المناسبة.

ملاحظة إذا لم تعيّن الأذونات المناسبة على جدول البيانات ستتلقى رسالة خطأ مشابهة لما يلي:

موفر Microsoft OLE DB لـ برامج تشغيل ODBC الخطأ '80004005'

[Microsoft][برنامج تشغيل Excel ODBC] Microsoft Jet لا يمكن فتح مشغل قاعدة بيانات ملف '(غير معروف)'. مفتوحة مسبقاً بشكل خاص من قبل مستخدم آخر أو تحتاج إلى إذن لعرض بياناته.
  1. إنشاء صفحة ASP جديدة ولصقها في التعليمة البرمجية التالية:
          <!-- Begin ASP Source Code -->
          <%@ LANGUAGE="VBSCRIPT" %>
          <%
            Set objConn = Server.CreateObject("ADODB.Connection")
            objConn.Open "ADOExcel"
    
            Set objRS = Server.CreateObject("ADODB.Recordset")
            objRS.ActiveConnection = objConn
            objRS.CursorType = 3                    'Static cursor.
            objRS.LockType = 2                      'Pessimistic Lock.
            objRS.Source = "Select * from myRange1"
            objRS.Open
       %>
       <br>
       <%
          Response.Write("Original Data")
    
          'Printing out original spreadsheet headings and values.
    
          'Note that the first recordset does not have a "value" property
          'just a "name" property.  This will spit out the column headings.
    
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'The update is made here
    
          objRS.MoveFirst
          objRS.Fields(0).Value = "change"
          objRS.Fields(1).Value = "look"
          objRS.Fields(2).Value = "30"
          objRS.Update
    
          'Printing out spreadsheet headings and values after update.
    
          Response.Write("<br>Data after the update")
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'ADO Object clean up.
    
          objRS.Close
          Set objRS = Nothing
    
          objConn.Close
          Set objConn = Nothing
       %>
       <!-- End ASP Source Code -->
    					
  2. حفظ اسم "صفحة الملقم النشطة" الخاصة بك ثم عرضها في المستعرض. ستشاهد التالي:
          Original Data:
    
          column1    column2    column3
          -----------------------------
    
          rr         this       30
          bb         test       20
          tt         works      25
    
    
          Data after the update:
    
          column1    column2    column3
          -----------------------------
    
          change     look       30
          bb         test       20
          tt         works      25
    					
ملاحظة تم إجراء تحديث على الصف الأول من نطاق مسمى (بعد العناوين).

مراجع

للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
190195كيفية ExtractInformation من ورقة Excel مع DAO

الخصائص

معرف المقالة: 195951 - تاريخ آخر مراجعة: 13/جمادى الأولى/1425 - مراجعة: 5.2
تنطبق على
  • Microsoft ActiveX Data Objects 1.0
  • Microsoft ActiveX Data Objects 1.5
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1 Service Pack 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Active Server Pages 4.0
  • Microsoft Data Access Components 2.5
كلمات أساسية: 
kbmt kbcode kbhowto kbmdacnosweep KB195951 KbMtar
ترجمة آلية
هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية
اضغط هنا لرابط المقالة باللغة الانجليزية195951

إرسال ملاحظات