SQL.REQUEST (ฟังก์ชัน SQL.REQUEST)

สิ่งสำคัญ:  บทความนี้เป็นการแปลด้วยเครื่อง โปรดดู ข้อจำกัดความรับผิดชอบ โปรดดูบทความฉบับภาษาอังกฤษ ที่นี่ เพื่อใช้อ้างอิง

บทความนี้จะอธิบายเกี่ยวกับไวยากรณ์ของสูตรและการใช้ฟังก์ชัน SQL.REQUEST ใน Excel

สิ่งสำคัญ: 

  • เริ่มต้นใน Excel 2010 ประสบการณ์การใช้งาน Get & Transform (Power Query) มีฟังก์ชันการทำงานที่เพิ่มประสิทธิภาพสำหรับการนำเข้าข้อมูลจากแหล่งข้อมูลภายนอก และแทนที่ฟังก์ชัน SQL.REQUEST อย่างมีประสิทธิภาพ

  • ฟังก์ชัน SQL.REQUEST ไม่ได้รับการสนับสนุนในเวอร์ชันที่เก่ากว่า Microsoft Excel 2007

  • เนื้อหาบางส่วนในหัวข้อนี้อาจไม่สามารถใช้กับบางภาษาได้

คำอธิบาย

ฟังก์ชัน SQL.REQUEST เชื่อมต่อกับแหล่งข้อมูลภายนอกและเรียกใช้คิวรีจากเวิร์กชีต จากนั้น จะส่งกลับผลลัพธ์เป็นอาร์เรย์โดยไม่จำเป็นต้องเขียนโปรแกรมแมโคร ถ้าฟังก์ชันนี้ไม่พร้อมใช้งาน คุณจะต้องติดตั้งโปรแกรม Add-in Microsoft Excel ODBC (XLODBC.XLA)

ไวยากรณ์

SQL.REQUEST(connection_string,[output_ref],[driver_prompt],[query_text],[col_names_logical])

ไวยากรณ์ของฟังก์ชัน SQL.REQUEST มีอาร์กิวเมนต์ดังนี้

  • connection_string    (ต้องระบุ) คือการให้ข้อมูล เช่น ชื่อแหล่งข้อมูล, ID ผู้ใช้ และรหัสผ่าน ซึ่งจำเป็นสำหรับโปรแกรมควบคุมที่ใช้เชื่อมต่อกับแหล่งข้อมูล และจะต้องเป็นไปตามรูปแบบของโปรแกรมควบคุม ตารางดังต่อไปนี้จะมีตัวอย่างสตริงการเชื่อมต่อสามรายการสำหรับโปรแกรมควบคุมสามโปรแกรม

โปรแกรมควบคุม

connection_string

dBASE

DSN=NWind;PWD=test

SQL Server

DSN=MyServer;UID=dbayer; PWD=123;Database=Pubs

ORACLE

DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame

  • คุณจะต้องกำหนดชื่อแหล่งข้อมูล (DSN) ที่ใช้ใน connection_string ก่อนจะพยายามเชื่อมต่อ

  • คุณสามารถใส่ connection_string เป็นอาร์เรย์หรือสตริงก็ได้ ถ้า connection_string ยาวเกิน 250 อักขระ คุณจะต้องใส่เป็นอาร์เรย์

  • ถ้า SQL.REQUEST ไม่สามารถเข้าสู่แหล่งข้อมูลโดยการใช้ connection_string จะส่งกลับค่าความผิดพลาด #N/A

  • output_ref    (ระบุหรือไม่ก็ได้) คือเซลล์อ้างอิงที่คุณต้องการวางสตริงการเชื่อมต่อที่เสร็จสมบูรณ์แล้ว ถ้าคุณใส่ SQL.REQUEST บนเวิร์กชีตแล้ว output_ref จะถูกละเว้น

    • ใช้ output_ref เมื่อคุณต้องการให้ SQL.REQUEST ส่งกลับค่าสตริงการเชื่อมต่อแบบสมบูรณ์ (ในกรณีนี้คุณจะต้องใส่ SQL.REQUEST บนแผ่นงานแมโคร)

    • ถ้าคุณละ output_ref ไว้ SQL.REQUEST จะไม่ส่งกลับค่าสตริงการเชื่อมต่อแบบสมบูรณ์

  • driver_prompt    (ระบุหรือไม่ก็ได้) คือการระบุว่าจะให้แสดงกล่องโต้ตอบโปรแกรมควบคุมเมื่อใดและให้มีตัวเลือกใดบ้าง ให้ใช้ตัวเลขใดตัวเลขหนึ่งที่อธิบายในตารางต่อไปนี้ ถ้าละ driver_prompt ไว้ SQL.REQUEST จะใช้ 2 เป็นค่าเริ่มต้น

Driver_prompt

คำอธิบาย

1

กล่องโต้ตอบโปรแกรมควบคุม จะแสดงไว้เสมอ

2

กล่องโต้ตอบโปรแกรมควบคุม จะแสดงขึ้นเฉพาะเมื่อข้อมูลที่มาจากสตริงการเชื่อมต่อ และสเปคแหล่งข้อมูล มีไม่เพียงพอที่จะทำให้การเชื่อมต่อเสร็จสมบูรณ์ ตัวเลือกทั้งหมดในกล่องโต้ตอบจะใช้งานได้

3

กล่องโต้ตอบโปรแกรมควบคุม จะแสดงขึ้นเฉพาะเมื่อข้อมูลที่มาจากสตริงการเชื่อมต่อ และสเปคแหล่งข้อมูล มีไม่เพียงพอที่จะทำให้การเชื่อมต่อเสร็จสมบูรณ์ กล่องโต้ตอบตัวเลือกจะปรากฏเป็นสีจางและจะใช้ไม่ได้ถ้าไม่จำเป็นต้องใช้

4

กล่องโต้ตอบโปรแกรมควบคุม จะไม่แสดงขึ้น ถ้าการเชื่อมต่อไม่สำเร็จ จะส่งกลับข้อผิดพลาด

  • query_text    (ระบุหรือไม่ก็ได้) คือคำสั่ง SQL ที่คุณต้องการดำเนินการบนแหล่งข้อมูล

    • ถ้า SQL.REQUEST ไม่สามารถเรียกใช้งาน query_text บนแหล่งข้อมูลที่ระบุได้ จะส่งกลับค่าความผิดพลาด #N/A

    • คุณสามารถปรับปรุงแบบสอบถามโดยการต่อการอ้างอิงเข้ากับ query_text ในตัวอย่างต่อไปนี้ ทุกครั้งที่ $A$3 เปลี่ยนแปลง SQL.REQUEST จะใช้ค่าใหม่เพื่อปรับปรุงแบบสอบถาม

"เลือกชื่อจากลูกค้าที่เหลือ > " & $A$ 3 & ""

Microsoft Excel จะจำกัดความยาวของสตริงเอาไว้ 255 อักขระ ถ้า query_text ยาวมากกว่านั้น ให้ใส่แบบสอบถามในช่วงแนวตั้งของเซลล์ และให้ใช้ช่วงทั้งหมดเป็น query_text ค่าของเซลล์จะต่อกันเพื่อกลายเป็นคำสั่ง SQL อย่างสมบูรณ์

  • Column_names_logical    (ระบุหรือไม่ก็ได้) คือการระบุว่าจะส่งกลับชื่อคอลัมน์เป็นแถวแรกของผลลัพธ์หรือไม่ ให้กำหนดอาร์กิวเมนต์นี้เป็น TRUE ถ้าคุณต้องการส่งกลับชื่อคอลัมน์เป็นแถวแรกของผลลัพธ์ ให้ใช้ FALSE ถ้าคุณไม่ต้องการส่งกลับชื่อคอลัมน์ ถ้าละ column_names_logical ไว้ SQL.REQUEST จะไม่ส่งกลับชื่อคอลัมน์

ค่าที่ส่งกลับ

  • ถ้าฟังก์ชันนี้ดำเนินการทั้งหมดสมบูรณ์แล้ว จะส่งกลับค่าอาร์เรย์ของผลลัพธ์แบบสอบถามหรือจำนวนของแถวที่ได้รับผลกระทบจากแบบสอบถาม

  • ถ้า SQL.REQUEST ไม่สามารถเข้าสู่การใช้แหล่งข้อมูล connection_string ก็จะส่งกลับค่าความผิดพลาด #N/A

ข้อสังเกต

  • สามารถใส่ SQL.REQUEST เป็นอาร์เรย์ เมื่อคุณใส่ SQL.REQUEST เป็นอาร์เรย์ ฟังก์ชันนี้จะส่งกลับค่าอาร์เรย์ครบตามช่วงนั้นๆ

  • ถ้าช่วงของเซลล์ใหญ่กว่าชุดผลลัพธ์ SQL.REQUEST จะเพิ่มเซลล์ว่างไปที่อาร์เรย์ที่ส่งกลับค่ามาเพื่อเพิ่มขนาดตามความจำเป็น

  • ถ้าชุดผลลัพธ์ใหญ่กว่าช่วงที่ใส่เป็นอาร์เรย์ SQL.REQUEST จะส่งกลับค่าอาร์เรย์ทั้งหมด

  • อาร์กิวเมนต์ของ SQL.REQUEST อยู่ในลำดับที่แตกต่างจากอาร์กิวเมนต์ของฟังก์ชัน SQLRequest ใน Visual Basic for Applications

ตัวอย่าง

สมมติว่าคุณต้องการทำแบบสอบถามฐานข้อมูล dBASE ที่ชื่อว่า DBASE4 เมื่อคุณใส่สูตรต่อไปนี้ในเซลล์ อาร์เรย์ของผลลัพธ์แบบสอบถามจะถูกส่งกลับโดยที่แถวแรกเป็นชื่อคอลัมน์

SQL ร้องขอ (" DSN = NWind; DBQ = c:\msquery ตั้ = dBASE4 ", c15, 2, "เลือก Custmr_ID, Due_Date จากใบสั่งซื้อ order_Amt > 100 ", TRUE)

หมายเหตุ: ข้อจำกัดความรับผิดชอบของการแปลด้วยเครื่อง: บทความนี้มีการแปลด้วยระบบคอมพิวเตอร์โดยไม่มีการดำเนินการโดยบุคคล Microsoft จัดให้มีการแปลด้วยเครื่องนี้เพื่อช่วยให้ผู้ใช้ที่ไม่ได้พูดภาษาอังกฤษสามารถใช้ประโยชน์จากเนื้อหาเกี่ยวกับผลิตภัณฑ์ บริการและเทคโนโลยีของ Microsoft เนื่องจากบทความมีการแปลด้วยเครื่อง อาจมีข้อผิดพลาดด้านคำศัพท์ ไวยากรณ์หรือรูปประโยค

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×