วิธีการสร้างแบบสอบถามผลรวมกำลังทำงานใน Microsoft Access

ขั้นสูง: ต้องเขียนโค้ดผู้เชี่ยวชาญ ทำงานร่วมกัน และทักษะที่ผู้ใช้หลายคน


บทความนี้นำไปใช้ กับแฟ้มฐานข้อมูล (.mdb) Microsoft Access หรือ ไปยังแฟ้มฐานข้อมูล (.accdb) Microsoft Access สำหรับเป็น Microsoft Access 2000 รุ่นของบทความนี้ ดู208714

สำหรับรุ่น Microsoft Access 97 ของบทความนี้ ดู138911

สรุป

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




หมายเหตุ คุณสามารถดูการสาธิตของเทคนิคที่ใช้ในบทความนี้ในแฟ้มตัวอย่าง Qrysmp00.exe สำหรับข้อมูลเกี่ยวกับวิธีการขอรับแฟ้มตัวอย่างนี้ โปรดดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

207626 ACC2000: Access 2000 ตัวอย่างแบบสอบถามพร้อมใช้งานในศูนย์ดาวน์โหลด

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

วิธีที่ 1

วิธีการแรกใช้ฟังก์ชันDSumและเงื่อนไขในแบบสอบถามเพื่อสร้างผลรวมช่วงเวลาหนึ่ง ฟังก์ชันDSumรวมเรกคอร์ดปัจจุบันและเรกคอร์ดใด ๆ ก่อนหน้านี้ เมื่อแบบสอบถามย้ายไปยังระเบียนถัดไป ฟังก์ชันDSumเรียกใช้อีกครั้ง และปรับปรุงผลรวมสะสม

แบบสอบถามตัวอย่างต่อไปนี้ใช้ตารางจากฐานข้อมูลตัวอย่าง Northwindเพื่อสร้างผลรวมของต้นทุนค่าขนส่งสำหรับแต่ละเดือนใน 1997 ข้อมูลตัวอย่างไม่จำกัดเพื่อเหตุผลด้านประสิทธิภาพการทำงานหนึ่งปี เนื่องจากฟังก์ชันDSumรันหนึ่งครั้งสำหรับทุก ๆ ระเบียนในแบบสอบถาม อาจใช้เวลาหลายวินาที (ขึ้นอยู่กับความเร็วของคอมพิวเตอร์ของคุณ) สำหรับแบบสอบถามที่เสร็จสิ้นการประมวลผล เมื่อต้องการสร้าง และเรียกใช้แบบสอบถามนี้ ให้ทำตามขั้นตอนเหล่านี้:

  1. เปิดฐานข้อมูลตัวอย่าง Northwind
  2. สร้างแบบสอบถามเลือกใหม่ และเพิ่มตารางใบสั่งซื้อ
  3. บนเมนูมุมมองคลิกผลรวม

    หมายเหตุ ใน Access 2007 คลิกผลรวมในกลุ่มแสดง/ซ่อนบนแท็บการออกแบบ
  4. ในคอลัมน์แรกของตารางออกแบบแบบสอบถาม พิมพ์นิพจน์ต่อไปนี้ในกล่องฟิลด์และทำการเลือกสำหรับกล่องกาเครื่องหมายรวมการเรียงลำดับและแสดงต่อไปนี้:
       Field: AYear: DatePart("yyyy",[OrderDate])
    Total: Group By
    Sort: Ascending
    Show: Yes

    นิพจน์ในกล่องเขตข้อมูลแสดง และเรียงลำดับส่วนปีของเขตข้อมูล OrderDate
  5. ในคอลัมน์สองของตารางออกแบบแบบสอบถาม พิมพ์นิพจน์ต่อไปนี้ในกล่องฟิลด์และทำการเลือกสำหรับกล่องกาเครื่องหมายรวมการเรียงลำดับและแสดงต่อไปนี้:

       Field: AMonth: DatePart("m",[OrderDate])
    Total: Group By
    Sort: Ascending
    Show: Yes

    นิพจน์ในกล่องเขตข้อมูลเรียงลำดับ และแสดงส่วนเดือนของฟิลด์วันในใบสั่งเป็นค่าจำนวนเต็มตั้งแต่ 1 ถึง 12
  6. ในคอลัมน์สามของตารางออกแบบแบบสอบถาม พิมพ์นิพจน์ต่อไปนี้ในกล่องฟิลด์และทำการเลือกดังต่อไปนี้สำหรับกล่องกาเครื่องหมายทั้งหมดและแสดง

    หมายเหตุ: ในตัวอย่างต่อไปนี้ ใช้เครื่องหมายขีดล่าง (_) ที่ท้ายบรรทัดเป็นอักขระต่อบรรทัด เอาออกการขีดเส้นใต้จากจุดสิ้นสุดของบรรทัดเมื่อสร้างตัวอย่างนี้อีกครั้ง

       Field: RunTot: DSum("Freight","Orders","DatePart('m', _
    [OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _
    [OrderDate])<=" & [AYear] & "")
    Total: Expression
    Show: Yes

    นิพจน์ในกล่องเขตข้อมูลใช้ฟังก์ชันDSum()เมื่อต้องการรวมเขตข้อมูล Freight เมื่อค่าทั้งในแบบ AMonth และฟิลด์ AYear น้อยกว่า หรือเท่ากับระเบียนปัจจุบันที่มีการประมวลผลแบบสอบถาม
  7. ในคอลัมน์ของตารางออกแบบแบบสอบถามที่สี่ พิมพ์นิพจน์ต่อไปนี้ในกล่องเขตข้อมูลและทำการเลือกสำหรับกล่องกาเครื่องหมายรวมการเรียงลำดับและแสดงต่อไปนี้:

       Field: FDate: Format([OrderDate],"mmm")
    Total: Group By
    Sort: Ascending
    Show: Yes

    นิพจน์ในกล่องฟิลด์แสดงแต่ละเดือนในรูปแบบข้อความ ดังกล่าวเป็นมกราคม กุมภาพันธ์ มีนาคม และอื่น ๆ
  8. ในห้าของคอลัมน์ของตารางออกแบบแบบสอบถาม พิมพ์นิพจน์ต่อไปนี้ในกล่องเขตข้อมูลและทำการเลือกสำหรับกล่องกาเครื่องหมายรวมเงื่อนไขและแสดงต่อไปนี้:

       Field: DatePart("yyyy",[OrderDate])
    Total: Where
    Criteria: 1997
    Show: No

    นิพจน์ในกล่องเขตข้อมูลตัวกรองชุดระเบียนของแบบสอบถามเพื่อรวมข้อมูลจาก 1997 เท่านั้น
  9. เรียกใช้แบบสอบถาม โปรดสังเกตว่า ฟิลด์ RunTot แสดงระเบียนต่อไปนี้ มีผลรวม:

       AYear    AMonth     RunTot       FDate
    --------------------------------------
    1997 1 2238.98 Jan
    1997 2 3840.43 Feb
    1997 3 5729.24 Mar
    1997 4 8668.34 Apr
    1997 5 12129.74 May
    1997 6 13982.39 Jun
    1997 7 17729.29 Jul
    1997 8 22204.73 Aug
    1997 9 26565.26 Sep
    1997 10 32031.38 Oct
    1997 11 36192.09 Nov
    1997 12 42748.64 Dec

วิธีที่ 2

วิธีการที่สองใช้แบบสอบถามผลรวม โดยใช้ฟังก์ชันDSum()เพื่อสร้างผลรวมบนกลุ่ม

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

  1. เปิดฐานข้อมูลตัวอย่าง Northwind.mdb
  2. สร้างแบบสอบถามเลือกใหม่ และเพิ่มตารางใบสั่งซื้อ
  3. บนเมนูมุมมองคลิกผลรวม

    หมายเหตุ ใน Access 2007 คลิกผลรวมในกลุ่มแสดง/ซ่อนบนแท็บการออกแบบ
  4. ในคอลัมน์แรกของตารางออกแบบแบบสอบถาม เพิ่มเขตข้อมูลต่อไปนี้ไปยังฟิลด์กล่อง และทำการเลือกสำหรับกล่องกาเครื่องหมายทั้งหมดและแสดงต่อไปนี้:

       Field: EmpAlias: EmployeeID
    Total: Group By
    Show: Yes

    ฟิลด์นี้จัดกลุ่มข้อมูลตามเขตข้อมูล EmployeeID
  5. ในคอลัมน์สองของตารางออกแบบแบบสอบถาม เพิ่มเขตข้อมูลต่อไปนี้ไปยังฟิลด์กล่อง และทำการเลือกสำหรับกล่องกาเครื่องหมายทั้งหมดและแสดงต่อไปนี้:

       Field: Freight
    Total: Sum
    Show: Yes

    ฟิลด์นี้รวมข้อมูลค่าขนส่ง
  6. ในคอลัมน์สามของตารางออกแบบแบบสอบถาม พิมพ์นิพจน์ต่อไปนี้ในกล่องฟิลด์และทำการเลือกดังต่อไปนี้สำหรับกล่องกาเครื่องหมายทั้งหมดและแสดง

    หมายเหตุ: ในตัวอย่างต่อไปนี้ ใช้เครื่องหมายขีดล่าง (_) ที่ท้ายบรรทัดเป็นอักขระต่อบรรทัด เอาออกการขีดเส้นใต้จากจุดสิ้นสุดของบรรทัดเมื่อสร้างตัวอย่างนี้อีกครั้ง

       Field: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _
    & [EmpAlias] & ""),"$0,000.00")
    Total: Expression
    Show: Yes

    นิพจน์ในกล่องเขตข้อมูลใช้ฟังก์ชันDSum()เมื่อต้องการรวมเขตข้อมูล Freight เมื่อเขตข้อมูล EmployeeID น้อยกว่า หรือเท่ากับ EmpAlias ปัจจุบัน และจากนั้น จัดรูปแบบฟิลด์ที่อยู่ในสกุลเหรียญสหรัฐ
  7. เรียกใช้แบบสอบถาม โปรดสังเกตว่า ฟิลด์ RunTot แสดงระเบียนต่อไปนี้ มีผลรวม:

       Employee              SumOfFreight     RunTot
    -------------------------------------------------
    Davolio, Nancy $8,836.64 $8,836.64
    Fuller, Andrew $8,696.41 $17,533.05
    Leverling,Janet $10,884.74 $28,417.79
    Peacock, Margaret $11,346.14 $39,763.93
    Buchanan, Steven $3,918.71 $43,682.64
    Suyama, Michael $3,780.47 $47,463.11
    King, Robert $6,665.44 $54,128.55
    Callahan, Laura $7,487.88 $61,616.43
    Dodsworth, Anne $3,326.26 $64,942.69

คุณสมบัติ

รหัสบทความ: 290136 - การตรวจสอบครั้งสุดท้าย: 24 ก.พ. 2017 - ฉบับแก้ไข: 1

คำติชม