สร้างคิวรีแบบพาส-ทรู

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

คุณสามารถใช้ Access เป็นแอปพลิเคชัน Front-End แล้วเชื่อมโยงไปยังตารางในเซิร์ฟเวอร์ Back-End เช่น SQL Server ตามค่าเริ่มต้น คิวรีส่วนใหญ่จะทํางานภายในกลไกจัดการฐานข้อมูล Access ACE ในบางกรณี Access สามารถเรียกใช้คิวรีจากระยะไกลบน SQL Server ขึ้นอยู่กับไวยากรณ์ของ SQL และปัจจัยอื่นๆ สําหรับข้อมูลเพิ่มเติม ดู "JET กลไกจัดการฐานข้อมูล เวอร์ชัน 3.0: การเชื่อมต่อ ODBC" ใน รายงาน JET และ ODBC ที่ค้นพบใหม่

บ่อยครั้งที่คุณต้องการเรียกใช้คิวรีบนเซิร์ฟเวอร์ฐานข้อมูลอย่างชัดเจน คุณทําเช่นนี้เพื่อช่วยเพิ่มประสิทธิภาพการทํางาน: เซิร์ฟเวอร์ฐานข้อมูลมีพลังการประมวลผลที่ดีกว่าคอมพิวเตอร์เดสก์ท็อป และคุณสามารถส่งกลับชุดย่อยของข้อมูลที่เล็กลงผ่านการเชื่อมต่อเครือข่ายได้ เมื่อต้องการเรียกใช้คิวรีบนเซิร์ฟเวอร์ฐานข้อมูล ให้ใช้คิวรีแบบพาสทรู ซึ่งเป็นคําสั่ง Transact SQL (TSQL) ที่เชื่อมต่อกับ SQL Server โดยใช้สายอักขระการเชื่อมต่อ ODBC ตัวอย่างเช่น คุณสามารถส่งคําสั่ง SELECT เพื่อส่งกลับข้อมูลไปยังแผ่นข้อมูล ฟอร์ม รายงาน หรือตัวควบคุมรายการ เรียกใช้เทียบเท่ากับคิวรีแอคชัน (คําสั่ง Data Manipulation Language (DML)) เรียกกระบวนการที่จัดเก็บไว้ และดําเนินงานด้านการดูแล (คําสั่ง Data Definition Language (DDL))

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

  1. เชื่อมต่อกับฐานข้อมูลเซิร์ฟเวอร์
    สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการลิงก์ไปยัง SQL Server ให้ดูที่ นําเข้าหรือลิงก์ไปยังข้อมูลในฐานข้อมูล SQL Server และ ลิงก์ไปยังหรือนําเข้าข้อมูลจากฐานข้อมูล Azure SQL Server
  2. เลือก "สร้าง>การออกแบบคิวรี"
  3. ถ้าจําเป็น ให้ปิดกล่องโต้ตอบ เพิ่มตาราง (แสดงตาราง ใน Access
  4. เลือก ออกแบบ>แบบพาส-ทรู
    Access ซ่อนตารางออกแบบคิวรีและแสดงมุมมอง SQL
  5. ถ้าแผ่นคุณสมบัติของคิวรีไม่ปรากฏ ให้กด F4 เพื่อแสดงแผ่นคุณสมบัติ
  6. บนแผ่นคุณสมบัติ ให้คลิกกล่องคุณสมบัติ ODBC Connect Str แล้วเลือกทําอย่างใดอย่างหนึ่งต่อไปนี้:

เมื่อต้องการรับสายอักขระการเชื่อมต่อ ให้ทําดังนี้

  1. ในบานหน้าต่างนําทาง ให้คลิกขวาที่ตารางที่ลิงก์กับแหล่งข้อมูลที่ต้องการ แล้วเลือกตัวจัดการตารางที่ลิงก์
  2. ในกล่องโต้ตอบ ตัวจัดการตารางที่ลิงก์ ให้เลือกกล่องกาเครื่องหมายของแหล่งข้อมูล จากนั้นเลือก แก้ไข
  3. ในกล่องโต้ตอบ แก้ไขลิงก์ ให้คัดลอกข้อความในกล่องสตริงการเชื่อมต่อ
  1. ใส่คิวรีของคุณในมุมมอง SQL
    หมายเหตุ: มีความแตกต่างที่สําคัญระหว่าง Access SQL และ SQL Server TSQL โดยเฉพาะอย่างยิ่งกับไวยากรณ์ ชื่อฟังก์ชัน และอาร์กิวเมนต์ของฟังก์ชัน สำหรับข้อมูลเพิ่มเติม ให้ดู การเปรียบเทียบ Access SQL กับ SQL Server TSQL
    เคล็ดลับ สร้างคิวรี TSQL ใน SQL Server Management Studio ก่อน จากนั้นคัดลอกและวาง SQL ลงในมุมมอง SQL ซึ่งทําให้แน่ใจว่าคิวรีมีไวยากรณ์ที่ถูกต้อง ถ้าคุณไม่มีการเข้าถึงที่สะดวกไปยังฐานข้อมูล SQL Server ให้พิจารณาติดตั้ง Microsoft SQL Server Express Edition บนเดสก์ท็อปของคุณ ซึ่งสนับสนุนความจุสูงสุด 10 GB และเป็นวิธีที่ง่ายและฟรีและง่ายกว่าในการเรียกใช้และตรวจสอบการโยกย้ายของคุณ

  2. พิจารณาตั้งค่าคุณสมบัติที่เกี่ยวข้องเพิ่มเติม:

    • ส่งกลับระเบียน คําสั่ง SQL บางคําสั่งส่งกลับระเบียน เช่น SELECT และบางคําสั่งไม่ส่งกลับ เช่น UPDATE ถ้าคิวรีส่งกลับระเบียน ให้ตั้งค่าคุณสมบัตินี้เป็น ใช่ ถ้าคิวรีไม่ส่งกลับระเบียน ให้ตั้งค่าคุณสมบัตินี้เป็น ไม่ใช่
      หมายเหตุ คิวรีแบบพาสทรูสามารถส่งกลับชุดผลลัพธ์ได้หลายชุด แต่ในแผ่นข้อมูล ฟอร์ม รายงาน หรือตัวแปรชุดระเบียน จะใช้เฉพาะชุดผลลัพธ์แรกเท่านั้น เมื่อต้องการรับชุดผลลัพธ์หลายชุด ให้ใช้ คิวรีแบบใช้สร้างตาราง ดังที่ตัวอย่างต่อไปนี้แสดง

      SELECT <pass-through query name>.*
      INTO <local table name>
      FROM < pass-through query name >
      

      คุณต้องใช้เครื่องหมายดอกจัน (*) เนื่องจากชุดผลลัพธ์แต่ละชุดอาจมีคอลัมน์ต่างกัน ชุดผลลัพธ์แต่ละชุดจะถูกบันทึกในตารางแยกต่างหาก และตัวเลขจะถูกผนวกเข้ากับชื่อตารางภายในให้สอดคล้องกัน ตัวอย่างเช่น ถ้าส่งกลับชุดผลลัพธ์สามชุด ชื่อตารางจะเป็น: <ชื่อตาราง>ภายใน, ชื่อ <ตาราง>ภายใน 1, ชื่อ <ตาราง>ภายใน 2

    • ข้อความบันทึก ระบุว่าจะส่งกลับข้อความจากฐานข้อมูล SQL ในตารางข้อความของ Access หรือไม่ ชื่อตารางมีรูปแบบ username – nn โดยที่ username คือชื่อลงชื่อเข้าใช้ของผู้ใช้ปัจจุบัน และ nn คือตัวเลขที่ขึ้นต้นด้วย 00

    • การหมดเวลา ODBC ระบุจํานวนวินาทีสําหรับรอก่อนที่ข้อผิดพลาดการหมดเวลาจะเกิดขึ้นเมื่อเรียกใช้คิวรี ค่าเริ่มต้นคือ 60 วินาที อาจมีความล่าช้าเนื่องจากปริมาณการใช้เครือข่ายหรือการใช้งานเซิร์ฟเวอร์ฐานข้อมูลจํานวนมาก

    • Max Records ระบุจํานวนระเบียนสูงสุดที่จะส่งกลับ คุณอาจมีทรัพยากรระบบจํากัด หรือคุณต้องการทดสอบผลลัพธ์ของคุณกับข้อมูลเพียงเล็กน้อย

  3. เมื่อคุณใส่คิวรีเสร็จแล้ว ให้เลือกออกแบบเรียกใช้> คิวรีของคุณจะถูกส่งไปยังเซิร์ฟเวอร์ฐานข้อมูลเพื่อดําเนินการ

ดูเพิ่มเติม

การอ้างอิง Transact-SQL

การใช้คิวรีด้วย Transact-SQL