วิธีการสอบถามและข้อมูลของ Excel โปรแกรมปรับปรุงที่ใช้ ADO จาก ASP

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 195951 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายเกี่ยวกับวิธีการสอบถาม และปรับปรุง ข้อมูลในกระดาษคำนวณของ Excel โดยใช้ ActiveX Data Objects (ADO) จากการ หน้า Server Pages (ASP) ที่ใช้งานอยู่ บทความยังอธิบายถึงข้อจำกัดที่ กำลังเชื่อมโยงกับชนิดของโปรแกรมประยุกต์นี้

สิ่งสำคัญ: แม้ว่า สนับสนุนการเข้าถึงแบบหลายผู้ใช้โปรแกรมประยุกต์ ASP/ADO กระดาษคำนวณของ Excel ไม่ ดังนั้น วิธีการสอบถาม และปรับปรุงข้อมูลนี้ไม่สนับสนุน การเข้าถึงเกิดขึ้นพร้อมกันแบบหลายผู้ใช้

ข้อมูลเพิ่มเติม

เมื่อต้องการเข้าถึงข้อมูลในกระดาษคำนวณของ Excel ของคุณสำหรับสิ่งนี้ ตัวอย่าง ใช้โปรแกรมควบคุม ODBC Microsoft Excel สร้างตารางในการเข้าถึง ข้อมูล โดยการสร้างช่วงที่ตั้งชื่อในกระดาษคำนวณของ Excel ของคุณ

ขั้นตอนในการสร้างโปรแกรมประยุกต์ตัวอย่าง

  • สร้างไฟล์ Excel ADOtest.xls ด้วยข้อมูลต่อไปนี้ ในแผ่นงาน 1:

    ยุบตารางนี้ขยายตารางนี้
    column1column2column3
    rrนี้15
    bbการทดสอบ20
    eeการทำงาน25

    หมายเหตุถ้าคอลัมน์ในกระดาษคำนวณของ Excel ของคุณประกอบด้วยข้อความทั้งสอง และ หมายเลข โปรแกรมควบคุม ODBC ที่ Excel ไม่สามารถอย่างถูกต้องแปลว่าข้อมูลชนิดใด คอลัมน์ควรเป็น โปรดตรวจสอบให้แน่ใจว่า เซลล์ทั้งหมดในคอลัมน์ของ ชนิดข้อมูลเดียวกัน ข้อผิดพลาดที่สามต่อไปนี้สามารถเกิดขึ้นได้ถ้าแต่ละเซลล์ในคอลัมน์ ไม่เหมือนกับชนิดหรือคุณมีชนิดที่ผสมระหว่าง "ข้อความ" และ "ทั่วไป":
    1. Microsoft บริการ OLE DB สำหรับข้อผิดพลาดของโปรแกรมควบคุม ODBC '80040e21'
      ไม่สามารถสนับสนุนคุณสมบัติร้องขอโดย โปรแกรมควบคุม ODBC นี้
    2. Microsoft บริการ OLE DB สำหรับข้อผิดพลาดของโปรแกรมควบคุม ODBC '80004005'
      แบบสอบถามไม่สามารถได้เนื่องจากมัน ประกอบด้วยคอลัมน์ที่ค้นหาได้ไม่มีการใช้เป็นคีย์ hopeful
    3. Microsoft บริการ OLE DB สำหรับข้อผิดพลาดของโปรแกรมควบคุม ODBC '80004005'
      การปรับปรุงโดยใช้แบบสอบถามที่ล้มเหลว แถวเพื่อปรับปรุง ไม่พบ
  • สร้างช่วงตั้งชื่อ myRange1 ในกระดาษคำนวณของคุณ:

    1. เน้นพื้นที่แถวและคอลัมน์ที่ข้อมูลของคุณ แต่อยู่
    2. บนเมนูแทรก ชี้ไปที่ชื่อ และคลิก กำหนด
    3. ป้อน myRange1 ชื่อสำหรับช่วงตั้งชื่อ ชื่อ
    4. คลิกตกลง
    MyRange1 ตั้งชื่อช่วงประกอบด้วยข้อมูลต่อไปนี้:

    ยุบตารางนี้ขยายตารางนี้
    column1column2column3
    rrนี้15
    bbการทดสอบ20
    eeการทำงาน25


    หมายเหตุADO สันนิษฐานว่า แถวแรกในแบบสอบถามแบบ Excel ประกอบด้วยการ ส่วนหัวของคอลัมน์ ดังนั้น ช่วงตั้งชื่อต้องมีส่วนหัวของคอลัมน์ นี่คือลักษณะการทำงานที่แตกต่างจาก DAO

    หมายเหตุส่วนหัวของคอลัมน์ไม่สามารถเป็นตัวเลข โปรแกรมควบคุม Excel ไม่สามารถ ตี และ แทน กลับเป็นเซลล์อ้างอิง ตัวอย่างเช่น คอลัมน์ จะต้อง misinterpreted หัวเรื่องของ "F1"
  • สร้างตัว ODBC ระบบข้อมูลแหล่งชื่อ (DSN) ชี้ไปที่ แฟ้ม ADOTest.xls
    1. จาก'แผงควบคุม' เปิด ODBC ผู้ดูแล
    2. บนแท็บ DSN ของระบบ คลิกเพิ่ม
    3. เลือกการโปรแกรมควบคุม Microsoft Excel (*.xls) และคลิก'เสร็จสิ้น' ถ้าตัวเลือกนี้ไม่ได้ คุณจำเป็นต้องติดตั้งโปรแกรมควบคุม Microsoft ODBC สำหรับ Excel จากการตั้งค่า Excel
    4. เลือก ADOExcel สำหรับชื่อของแหล่งข้อมูล
    5. ตรวจสอบให้แน่ใจว่า มีการตั้งค่ารุ่นรุ่นถูกต้อง Excel
    6. คลิก "เลือก...สมุดงาน" เรียกดูไป ADOTest.xls แฟ้ม แล้วคลิกตกลง
    7. คลิก "ตัวเลือก >> " ปุ่ม และล้างอ่าน" เฉพาะ"กล่องกาเครื่องหมาย
    8. คลิกตกลง จากนั้น คลิกตกลงอีกครั้ง
  • การตั้งค่าสิทธิ์ในแฟ้ม ADOTest.xls
ถ้าหน้าการเซิร์ฟเวอร์ของคุณใช้งานอยู่มีการเข้าถึงแบบไม่ระบุชื่อ คุณจำเป็นต้อง ตรวจสอบให้แน่ใจว่า บัญชีผู้ใช้ที่ไม่ระบุชื่อ (IUSR_ <machinename>) มีน้อย การเข้าถึงแบบอ่าน/เขียน (RW) ไปยังกระดาษคำนวณ ถ้าคุณต้องการลบข้อมูล จากกระดาษคำนวณ คุณจำเป็นต้องให้สิทธิ์ที่สอดคล้องกัน </machinename>

ถ้าคุณได้รับรองความถูกต้องเข้ากับของคุณ Active Server Page คุณจำเป็นต้อง ให้แน่ใจว่า ผู้ใช้ทุกคนที่เข้าถึงแอพลิเคชันของคุณได้ที่เหมาะสม สิทธิ์

หมายเหตุถ้าคุณไม่ได้ตั้งค่าสิทธิ์ที่เหมาะสมบนเครื่อง กระดาษคำนวณ คุณได้รับข้อความแสดงข้อผิดพลาดคล้ายกับข้อความต่อไปนี้:

Microsoft บริการ OLE DB สำหรับข้อผิดพลาดของโปรแกรมควบคุม ODBC '80004005'

[Microsoft][ODBC Excel โปรแกรมควบคุม] 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

คุณสมบัติ

หมายเลขบทความ (Article ID): 195951 - รีวิวครั้งสุดท้าย: 28 มกราคม 2554 - Revision: 5.0
ใช้กับ
  • Microsoft Active Server Pages 4.0
  • Microsoft Data Access Components 2.5
Keywords: 
kbcode kbhowto kbmdacnosweep kbmt KB195951 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:195951

ให้ข้อเสนอแนะ

 

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