บทความนี้มีตัวอย่างนิพจน์มากมายใน Access นิพจน์คือการผสมผสานตัวดำเนินการทางคณิตศาสตร์หรือทางตรรกศาสตร์ ค่าคงที่ ฟังก์ชัน เขตข้อมูลตาราง ตัวควบคุม และคุณสมบัติที่ประเมินเป็นค่าเดียวกัน คุณสามารถใช้นิพจน์ใน Access เพื่อคำนวณค่าต่างๆ ตรวจสอบความถูกต้องของข้อมูล และตั้งค่าเริ่มต้น
ในบทความนี้
แบบฟอร์มและรายงาน
นิพจน์แบบฟอร์มและรายงานทั้งหมด
|
การดำเนินการข้อความ ค่าในตัวควบคุมอื่น การดำเนินการวันที่ |
หัวกระดาษและท้ายกระดาษ นับ รวม และหาค่าเฉลี่ย เงื่อนไขเพียงสองค่า |
การดำเนินการคำนวณ ฟังก์ชันการรวมของ SQL |
|---|
คิวรีและตัวกรอง
ตาราง
| ค่าเริ่มต้นของเขตข้อมูล | กฎการตรวจสอบความถูกต้องของเขตข้อมูล |
|---|
แมโคร
แบบฟอร์มและรายงาน
ตารางในส่วนนี้มีตัวอย่างของนิพจน์ที่คำนวณค่าในตัวควบคุมที่อยู่ในแบบฟอร์มหรือรายงาน เมื่อต้องการสร้างตัวควบคุมที่ผ่านการคำนวณ ให้คุณใส่นิพจน์ในคุณสมบัติ แหล่งข้อมูลตัวควบคุม ของตัวควบคุม แทนที่จะใส่ในเขตข้อมูลตารางหรือคิวรี
หมาย เหตุ คุณยังสามารถใช้นิพจน์ในแบบฟอร์มหรือรายงานเมื่อคุณเน้นข้อมูลด้วยการจัดรูปแบบตามเงื่อนไข
การดำเนินการข้อความ
นิพจน์ในตารางต่อไปนี้ใช้ & ตัวดําเนินการ (เครื่องหมายและ) และ + (บวก) เพื่อรวมสตริงข้อความ ฟังก์ชันที่มีอยู่แล้วภายในเพื่อจัดการสตริงข้อความ หรือดําเนินการบนข้อความเพื่อสร้างตัวควบคุมจากการคํานวณ
| นิพจน์ | ผลลัพธ์ |
|---|---|
="N/A" |
แสดง N/A |
=[FirstName] & " " & [LastName] |
แสดงค่าที่อยู่ในเขตข้อมูลตารางที่เรียกว่า FirstName และ LastName ในตัวอย่าง & นี้ ตัวดําเนินการจะใช้เพื่อรวมเขตข้อมูล FirstName อักขระช่องว่าง (อยู่ในเครื่องหมายอัญประกาศ) และเขตข้อมูล LastName |
=Left([ProductName], 1) |
ใช้ฟังก์ชัน Left เพื่อแสดงอักขระแรกของค่าของเขตข้อมูลหรือตัวควบคุมที่เรียกว่าชื่อ ProductName |
=Right([AssetCode], 2) |
ใช้ฟังก์ชัน Right เพื่อแสดงอักขระ 2 ตัวสุดท้ายของค่าในเขตข้อมูลหรือตัวควบคุมที่เรียกว่า AssetCode |
=Trim([Address]) |
ใช้ฟังก์ชัน Trim เพื่อแสดงค่าของตัวควบคุมที่อยู่ โดยนำช่องว่างนำหน้าหรือต่อท้ายออก |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
ใช้ฟังก์ชัน IIf เพื่อแสดงค่าของตัวควบคุมเมืองและ PostalCode ถ้าค่าในตัวควบคุมภูมิภาคเป็น null มิฉะนั้น จะแสดงค่าของตัวควบคุมเมือง ภูมิภาค และ PostalCode ซึ่งคั่นโดยช่องว่าง |
=[City] & (" " + [Region]) & " " & [PostalCode] |
ใช้ตัวดําเนินการ + และการเผยแพร่ค่า null เพื่อแสดงค่าของตัวควบคุมเมืองและ PostalCode ถ้าค่าในเขตข้อมูลหรือตัวควบคุม Region เป็น null มิฉะนั้น จะแสดงค่าของเขตข้อมูลหรือตัวควบคุมเมือง ภูมิภาค และ PostalCode โดยคั่นด้วยช่องว่าง การเผยแพร่ที่ค่า Null หมายความว่าถ้าองค์ประกอบของนิพจน์มีค่า null ทั้งนิพจน์จะมีค่าเป็น null ด้วยเช่นกัน ตัว + ดําเนินการสนับสนุนการเผยแพร่ค่า Null ตัว & ดําเนินการจะไม่สนับสนุน |
ส่วนหัวและส่วนท้าย
คุณใช้คุณสมบัติ Page และ Pages เพื่อแสดงหรือพิมพ์หมายเลขหน้าในแบบฟอร์มหรือรายงาน คุณสมบัติ Page และ Pages จะพร้อมใช้งานระหว่างการพิมพ์หรือแสดงตัวอย่างก่อนพิมพ์เท่านั้น ดังนั้นคุณสมบัติเหล่านี้จะไม่ปรากฎบนแผ่นคุณสมบัติสำหรับแบบฟอร์มหรือรายงาน โดยทั่วไปแล้ว คุณจะใช้คุณสมบัติเหล่านี้โดยการวางกล่องข้อความในส่วนหัวและส่วนท้ายของแบบฟอร์มหรือรายงาน แล้วใช้นิพจน์ เช่น นิพจน์ที่แสดงในตารางต่อไปนี้
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ส่วนหัวและส่วนท้ายในแบบฟอร์มและรายงาน ให้ดูบทความ แทรกหมายเลขหน้าลงในแบบฟอร์มหรือรายงาน
| นิพจน์ | ผลลัพธ์ |
|---|---|
=[Page] |
1 |
="Page " & [Page] |
หน้า 1 |
="Page " & [Page] & " of " & [Pages] |
หน้า 1 จาก 3 |
=[Page] & " of " & [Pages] & " Pages" |
1 จาก 3 หน้า |
=[Page] & "/" & [Pages] & " Pages" |
1/3 หน้า |
=[Country/region] & " - " & [Page] |
สหราชอาณาจักร - 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
พิมพ์เมื่อ: 31/12/17 |
การดำเนินการคำนวณ
คุณสามารถใช้นิพจน์เพื่อบวก ลบ คูณ และหารค่าในเขตข้อมูลหรือตัวควบคุมอย่างน้อยสองตัวได้ คุณยังสามารถใช้นิพจน์เพื่อดำเนินการทางคณิตศาสตร์กับวันที่ ตัวอย่างเช่น สมมติว่าคุณมีเขตข้อมูลตารางวันที่/เวลาที่ชื่อว่า RequiredDate ในเขตข้อมูล หรือในตัวควบคุมที่ผูกกับเขตข้อมูล นิพจน์ =[RequiredDate] - 2 จะส่งกลับค่าวันที่/เวลาเท่ากับสองวันก่อนค่าปัจจุบันในเขตข้อมูล RequiredDate
| นิพจน์ | ผลลัพธ์ |
|---|---|
=[Subtotal]+[Freight] |
ผลรวมของค่าในเขตข้อมูลหรือตัวควบคุมผลรวมย่อยและค่าขนส่งสินค้า |
=[RequiredDate]-[ShippedDate] |
ช่วงระหว่างค่าวันที่ของเขตข้อมูลหรือตัวควบคุม RequiredDate และ ShippedDate |
=[Price]*1.06 |
ผลคูณของค่าของเขตข้อมูลหรือตัวควบคุมราคา และ 1.06 (เพิ่ม 6 เปอร์เซ็นต์ให้กับค่าราคา) |
=[Quantity]*[Price] |
ผลคูณของค่าของเขตข้อมูลหรือตัวควบคุม ปริมาณ และ ราคา |
=[EmployeeTotal]/[CountryRegionTotal] |
ผลหารของค่าของเขตข้อมูลหรือตัวควบคุม EmployeeTotal และ CountryRegionTotal |
หมาย เหตุ เมื่อคุณใช้ตัวดําเนินการทางคณิตศาสตร์ (+, , -*, และ /) ในนิพจน์ และค่าของหนึ่งในตัวควบคุมในนิพจน์เป็น null ผลลัพธ์ของนิพจน์ทั้งหมดจะเป็น null ซึ่งเรียกว่าการเผยแพร่ Null ถ้าระเบียนใดๆ ในตัวควบคุมที่คุณใช้ในนิพจน์อาจมีค่า Null คุณสามารถหลีกเลี่ยงการเผยแพร่ค่า Null ได้โดยการแปลงค่า Null เป็นศูนย์โดยใช้ฟังก์ชัน Nz ตัวอย่างเช่น =Nz([Subtotal])+Nz([Freight])
ค่าในตัวควบคุมอื่น
บางครั้ง คุณต้องใช้ค่าที่มีอยู่ที่อื่น เช่น ในเขตข้อมูลหรือตัวควบคุมบนแบบฟอร์มหรือรายงานอื่น คุณสามารถใช้นิพจน์เพื่อส่งกลับค่าจากเขตข้อมูลหรือตัวควบคุมอื่น
ตารางต่อไปนี้แสดงรายการตัวอย่างของนิพจน์ที่คุณสามารถใช้ในตัวควบคุมที่ผ่านการคำนวณบนแบบฟอร์ม
| นิพจน์ | ผลลัพธ์ |
|---|---|
=Forms![Orders]![OrderID] |
ค่าของตัวควบคุม OrderID บนแบบฟอร์มการสั่งซื้อ |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
ค่าของตัวควบคุม OrderSubtotal บนแบบฟอร์มย่อยที่ชื่อ ผลรวมย่อยการสั่งซื้อ บนแบบฟอร์มการสั่งซื้อ |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
ค่าของคอลัมน์ที่สามใน ProductID กล่องรายการแบบหลายคอลัมน์บนแบบฟอร์มย่อยที่ชื่อ แบบฟอร์มย่อยการสั่งซื้อ บนแบบฟอร์ม การสั่งซื้อ (โปรดสังเกตว่า 0 หมายถึงคอลัมน์แรก 1 หมายถึงสองคอลัมน์ที่สอง และต่อๆ ไป) |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
ผลคูณของค่าของตัวควบคุม ราคา บนแบบฟอร์มย่อยที่ชื่อ แบบฟอร์มย่อยการสั่งซื้อ บนแบบฟอร์ม การสั่งซื้อ และ 1.06 (เพิ่ม 6 เปอร์เซ็นต์ 6 ให้กับค่าของตัวควบคุม ราคา) |
=Parent![OrderID] |
ค่าของตัวควบคุม OrderID บนหน้าหลักหรือแบบฟอร์มแม่ของแบบฟอร์มย่อยปัจจุบัน |
นิพจน์ในตารางต่อไปนี้แสดงวิธีใช้ตัวควบคุมที่ผ่านการคำนวณบนรายงาน นิพจน์อ้างอิง คุณสมบัติรายงาน
| นิพจน์ | ผลลัพธ์ |
|---|---|
=Report![Invoice]![OrderID] |
ค่าของตัวควบคุมที่เรียกว่า "OrderID" ในรายงานที่เรียกว่า "ใบแจ้งหนี้" |
=Report![Summary]![Summary Subreport]![SalesTotal] |
ค่าของตัวควบคุม SalesTotal บนรายงานย่อยที่ชื่อ รายงานย่อยสรุป บนรายงาน สรุป |
=Parent![OrderID] |
ค่าของตัวควบคุม OrderID บนหน้าหลักหรือรายงานแม่ของรายงานย่อยปัจจุบัน |
นับ รวม และหาค่าเฉลี่ย
คุณสามารถใช้ชนิดของฟังก์ชันที่เรียกว่าฟังก์ชันการรวมเพื่อคำนวณค่าของเขตข้อมูลหรือตัวควบคุมอย่างน้อยหนึ่งตัว ตัวอย่างเช่น คุณสามารถคำนวณกลุ่มผลรวมสำหรับส่วนท้ายของกลุ่มในรายงาน หรือผลรวมย่อยคำสั่งซื้อสำหรับรายการบนแบบฟอร์ม นอกจากนี้ คุณยังสามารถนับจำนวนรายการในอย่างน้อยหนึ่งเขตข้อมูลหรือคำนวณค่าเฉลี่ย
นิพจน์ในตารางต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน เช่น Avg, Count และ Sum
| นิพจน์ | คำอธิบาย |
|---|---|
=Avg([Freight]) |
ใช้ฟังก์ชัน Avg เพื่อแสดงค่าเฉลี่ยของค่าของเขตข้อมูลตารางหรือตัวควบคุมที่ชื่อ "ค่าขนส่งสินค้า" |
=Count([OrderID]) |
ใช้ฟังก์ชัน Count เพื่อแสดงจำนวนระเบียนในตัวควบคุม OrderID |
=Sum([Sales]) |
ใช้ฟังก์ชัน Sum เพื่อแสดงผลรวมของค่าของตัวควบคุม ยอดขาย |
=Sum([Quantity]*[Price]) |
ใช้ฟังก์ชัน Sum เพื่อแสดงผลรวมของผลคูณของค่าของตัวควบคุม ปริมาณ และ ราคา |
=[Sales]/Sum([Sales])*100 |
แสดงเปอร์เซ็นต์ของยอดขาย ที่มาจากการหารค่าของตัวควบคุม ยอดขาย โดยผลรวมของค่าทั้งหมดของตัวควบคุม ยอดขาย ถ้าคุณตั้งค่าคุณสมบัติ รูปแบบ ของตัวควบคุมเป็น เปอร์เซ็นต์ ไม่ต้องรวม *100 ในนิพจน์ |
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟังก์ชันการรวมและการรวมค่าในเขตข้อมูลและคอลัมน์ ให้ดูบทความ รวมข้อมูลโดยใช้คิวรีนับข้อมูลโดยใช้คิวรีแสดงผลรวมคอลัมน์ในแผ่นข้อมูลโดยใช้แถวผลรวม และ แสดงผลรวมคอลัมน์ในแผ่นข้อมูล
ฟังก์ชันการรวมของ SQL
คุณสามารถใช้ชนิดฟังก์ชันที่เรียกว่าฟังก์ชันการรวม SQL หรือโดเมนเมื่อคุณต้องการรวมหรือนับค่าตามที่เลือก "โดเมน" มีอย่างน้อยหนึ่งเขตข้อมูลในตารางอย่างน้อยหนึ่งตาราง หรืออย่างน้อยหนึ่งตัวควบคุมบนแบบฟอร์มหรือรายงานอย่างน้อยหนึ่งรายการ ตัวอย่างเช่น คุณสามารถจับคู่ค่าในเขตข้อมูลตารางที่มีค่าในตัวควบคุมบนแบบฟอร์ม
| นิพจน์ | คำอธิบาย |
|---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
ใช้ฟังก์ชัน DLookup เพื่อส่งกลับค่าของเขตข้อมูล ContactName ในตาราง ผู้จำหน่าย ที่ค่าของเขตข้อมูล SupplierID ในตารางตรงกับค่าของตัวควบคุม SupplierID บนแบบฟอร์ม ผู้จำหน่าย |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
ใช้ฟังก์ชัน DLookup เพื่อส่งกลับค่าของเขตข้อมูล ContactName ในตาราง ผู้จำหน่าย ที่ค่าของเขตข้อมูล SupplierID ในตารางตรงกับค่าของตัวควบคุม SupplierID บนแบบฟอร์ม ผู้จำหน่ายใหม่ |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
ใช้ฟังก์ชัน DSum เพื่อส่งกลับผลรวมของค่าในเขตข้อมูล OrderAmount ในตาราง การสั่งซื้อ ที่ CustomerID เป็น RATTC |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
ใช้ฟังก์ชัน DCount เพื่อส่งกลับจำนวนของค่า ใช่ ในเขตข้อมูล เกษียณ (เขตข้อมูล ใช่/ไม่ใช่) ในตาราง ทรัพย์สิน |
การดำเนินการวันที่
การติดตามวันที่และเวลาเป็นกิจกรรมฐานข้อมูลพื้นฐาน ตัวอย่างเช่น คุณสามารถคำนวณจำนวนวันที่ผ่านไปตั้งแต่วันที่ในใบแจ้งหนี้เพื่อคำนวณระยะเวลาบัญชีรายรับของคุณ คุณสามารถจัดรูปแบบวันที่และเวลาได้หลายวิธี ตามที่แสดงในตารางต่อไปนี้
| นิพจน์ | คำอธิบาย |
|---|---|
=Date() |
ใช้ฟังก์ชัน Date เพื่อแสดงวันที่ปัจจุบันในรูปแบบ ของ mm-dd-yyโดยที่ mm คือเดือน (1 ถึง 12) dd คือวัน (1 ถึง 31) และ yy เป็นตัวเลขสองหลักสุดท้ายของปี (1980 ถึง 2099) |
=Format(Now(), "ww") |
ใช้ฟังก์ชัน Format เพื่อแสดงจํานวนสัปดาห์ในปีสําหรับวันที่ปัจจุบัน ซึ่งแสดงสัปดาห์ที่ ww 1 ถึง 53 |
=DatePart("yyyy", [OrderDate]) |
ใช้ฟังก์ชัน DatePart เพื่อแสดงเลขสี่หลักของปีของค่าตัวควบคุม OrderDate |
=DateAdd("y", -10, [PromisedDate]) |
ใช้ฟังก์ชัน DateAdd เพื่อแสดง 10 วันก่อนหน้าค่าของตัวควบคุม PromisedDate |
=DateDiff("d", [OrderDate], [ShippedDate]) |
ใช้ฟังก์ชัน DateDiff เพื่อแสดงความแตกต่างของจำนวนวันระหว่างค่าของตัวควบคุม OrderDate และ ShippedDate |
=[InvoiceDate] + 30 |
ใช้การดำเนินการคำนวณกับวันที่เพื่อคำนวณวันที่ 30 วันหลังจากวันที่ในเขตข้อมูลหรือตัวควบคุม InvoiceDate |
เงื่อนไขเพียงสองค่า
ตัวอย่างนิพจน์ในตารางต่อไปนี้ใช้ฟังก์ชัน IIf เพื่อส่งกลับค่าที่เป็นไปได้หนึ่งจากสองค่า คุณส่งสามอาร์กิวเมนต์ไปยังฟังก์ชัน IIf: อาร์กิวเมนต์แรกคือนิพจน์ที่ต้องส่งกลับ True หรือ False ค่า อาร์กิวเมนต์ที่สองคือค่าที่จะส่งกลับ ถ้านิพจน์เป็นจริง และอาร์กิวเมนต์สามเป็นค่าที่จะส่งกลับ ถ้านิพจน์เป็นเท็จ
| นิพจน์ | คำอธิบาย |
|---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
ใช้ฟังก์ชัน IIf (Immediate If) เพื่อแสดงข้อความ "Order Confirmed" ถ้าค่าของตัวควบคุม ยืนยัน แล้ว แสดง Yesข้อความ "Order Not Confirmed." |
=IIf(IsNull([Country/region]), " ", [Country]) |
ใช้ฟังก์ชัน IIf และ IsNull เพื่อแสดงสตริงเปล่า ถ้าค่าของตัวควบคุม ประเทศ/ภูมิภาค เป็น null มิฉะนั้น จะแสดงค่าของตัวควบคุม ประเทศ/ภูมิภาค |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
ใช้ฟังก์ชัน IIf และ IsNull เพื่อแสดงค่าของตัวควบคุม เมือง และ PostalCode ถ้าค่าในตัวควบคุม ภูมิภาค เป็น null มิฉะนั้น จะแสดงค่าของเขตข้อมูลหรือตัวควบคุม เมือง ภูมิภาค และ PostalCode |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
ใช้ฟังก์ชัน IIf และ IsNull เพื่อแสดงข้อความ "ตรวจสอบวันที่หายไป" ถ้าผลลัพธ์ของการลบ ShippedDate จาก RequiredDate เป็น null มิฉะนั้น จะแสดงช่วงระหว่างค่าวันที่ของตัวควบคุม RequiredDate และ ShippedDate |
คิวรีและตัวกรอง
ส่วนนี้จะมีตัวอย่างของนิพจน์ที่คุณสามารถใช้เพื่อสร้างเขตข้อมูลที่ผ่านการคำนวณในคิวรี หรือเพื่อใส่เกณฑ์ลงในคิวรี เขตข้อมูลที่ผ่านการคำนวณคือคอลัมน์ในคิวรีที่เป็นผลลัพธ์จากนิพจน์ ตัวอย่างเช่น คุณสามารถคำนวณค่า รวมค่าข้อความ เช่น ชื่อและนามสกุล หรือจัดรูปแบบเป็นส่วนของวันที่
คุณใช้เกณฑ์ในคิวรีเพื่อจำกัดระเบียนที่คุณทำงาน ตัวอย่างเช่น คุณสามารถใช้ตัว Between ดําเนินการเพื่อใส่วันที่เริ่มต้นและสิ้นสุด และจํากัดผลลัพธ์ของคิวรีของคุณไปยังคําสั่งซื้อที่จัดส่งระหว่างวันที่เหล่านั้น
ต่อไปนี้คือตัวอย่างของนิพจน์สำหรับใช้ในคิวรี
การดำเนินการข้อความ
นิพจน์ในตารางต่อไปนี้ใช้ตัว & ดําเนินการ และ + เพื่อรวมสตริงข้อความ ใช้ฟังก์ชันที่มีอยู่แล้วภายในเพื่อดําเนินการกับสตริงข้อความ หรือดําเนินการกับข้อความเพื่อสร้างเขตข้อมูลจากการคํานวณ
| นิพจน์ | คำอธิบาย |
|---|---|
FullName: [FirstName] & " " & [LastName] |
สร้างเขตข้อมูลที่เรียกว่า FullName ที่แสดงค่าในเขตข้อมูล FirstName และ LastName ซึ่งคั่นด้วยช่องว่าง |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
สร้างเขตข้อมูลที่เรียกว่า ที่อยู่2 ที่แสดงค่าในเขตข้อมูล เมือง ภูมิภาค และ PostalCode ซึ่งคั่นด้วยช่องว่าง |
ProductInitial: Left([ProductName], 1) |
สร้างเขตข้อมูลที่เรียกว่า ProductInitial แล้วใช้ฟังก์ชัน Left เพื่อแสดง ในเขตข้อมูล ProductInitial อักขระตัวแรกของค่าในเขตข้อมูล ProductName |
TypeCode: Right([AssetCode], 2) |
สร้างเขตข้อมูลที่เรียกว่า รหัสประเภท แล้วใช้ฟังก์ชัน Right เพื่อแสดงอักขระสองตัวสุดท้ายของค่าในเขตข้อมูล AssetCode |
AreaCode: Mid([Phone],2,3) |
สร้างเขตข้อมูลที่เรียกว่า รหัสพื้นที่ แล้วใช้ฟังก์ชัน Mid เพื่อแสดงอักขระสามตัวที่เริ่มต้นด้วยอักขระตัวที่สองของค่าในเขตข้อมูล โทรศัพท์ |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
ตั้งชื่อเขตข้อมูลจากการคำนวณ ExtendedPrice แล้วใช้ฟังก์ชัน CCur เพื่อคำนวณผลรวมรายการที่มีส่วนลดที่นำไปใช้ |
การดำเนินการคำนวณ
คุณสามารถใช้นิพจน์เพื่อบวก ลบ คูณ และหารค่าในเขตข้อมูลหรือตัวควบคุมอย่างน้อยสองตัวได้ คุณยังสามารถดำเนินการทางคณิตศาสตร์กับวันที่ ตัวอย่างเช่น สมมติว่าคุณมีเขตข้อมูลวันที่/เวลา ที่เรียกว่า RequiredDate นิพจน์ =[RequiredDate] - 2 จะส่งกลับค่า วันที่/เวลา เท่ากับสองวันก่อนค่าในเขตข้อมูล RequiredDate
| นิพจน์ | คำอธิบาย |
|---|---|
PrimeFreight: [Freight] * 1.1 |
สร้างเขตข้อมูลที่เรียกว่า ค่าขนส่งสินค้าหลัก แล้วแสดงค่าขนส่งบวกด้วย 10 เปอร์เซ็นต์ในเขตข้อมูล |
OrderAmount: [Quantity] * [UnitPrice] |
สร้างเขตข้อมูลที่เรียกว่า OrderAmount แล้วแสดงผลคูณของค่าในเขตข้อมูล ปริมาณ และ UnitPrice |
LeadTime: [RequiredDate] - [ShippedDate] |
สร้างเขตข้อมูลที่เรียกว่า LeadTime แล้วแสดงความแตกต่างระหว่างค่าในเขตข้อมูล RequiredDate และ ShippedDate |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
สร้างเขตข้อมูลที่เรียกว่า ยอดรวมสินค้า แล้วแสดงผลรวมของค่าในเขตข้อมูล สินค้าคงคลัง และ สินค้าที่ถูกสั่งซื้อ |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
สร้างเขตข้อมูลที่เรียกว่า เปอร์เซ็นต์ค่าขนส่งสินค้า แล้วแสดงเปอร์เซ็นต์ของค่าขนส่งของแต่ละผลรวมย่อย นิพจน์นี้จะใช้ฟังก์ชัน Sum เพื่อหาผลรวมของค่าในเขตข้อมูล ค่าขนส่งสินค้า แล้วแบ่งผลรวมเหล่านั้นด้วยผลรวมของค่าในเขตข้อมูล ผลรวมย่อย เมื่อต้องการใช้นิพจน์นี้ คุณจะต้องแปลงคิวรีที่เลือกของคุณเป็นคิวรี Totals เนื่องจากคุณจะต้องใช้แถว ผลรวม ในเส้นตารางออกแบบ และคุณต้องตั้งค่าเซลล์ ผลรวม สำหรับเขตข้อมูลนี้เป็น นิพจน์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคิวรี Totals ให้ดูบทความ รวมข้อมูลโดยใช้คิวรี ถ้าคุณตั้งค่าคุณสมบัติ รูปแบบ ของเขตข้อมูลเป็น เปอร์เซ็นต์ ไม่ต้องรวม *100 |
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟังก์ชันการรวมและการรวมค่าในเขตข้อมูลและคอลัมน์ ให้ดูบทความ รวมข้อมูลโดยใช้คิวรีนับข้อมูลโดยใช้คิวรีแสดงผลรวมคอลัมน์ในแผ่นข้อมูลโดยใช้แถวผลรวม และ แสดงผลรวมคอลัมน์ในแผ่นข้อมูล
การดำเนินการวันที่
ฐานข้อมูลเกือบทั้งหมดจะจัดเก็บและติดตามวันที่และเวลา คุณทำงานกับวันที่และเวลาใน Access ด้วยการตั้งค่าเขตข้อมูลวันที่และเวลาในตารางของคุณเป็นชนิดข้อมูล วันที่/เวลา Access สามารถดำเนินการคำนวณบนวันที่ ตัวอย่างเช่น คุณสามารถคำนวณจำนวนวันที่ผ่านไปตั้งแต่วันที่ในใบแจ้งหนี้เพื่อคำนวณระยะเวลาบัญชีรายรับของคุณ
| นิพจน์ | คำอธิบาย |
|---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
สร้างเขตข้อมูลที่เรียกว่า LagTime แล้วใช้ฟังก์ชัน DateDiff เพื่อแสดงจำนวนวันระหว่างวันที่สั่งซื้อกับวันที่จัดส่ง |
YearHired: DatePart("yyyy",[HireDate]) |
สร้างเขตข้อมูลที่เรียกว่า ปีที่ว่าจ้าง แล้วใช้ฟังก์ชัน DatePart เพื่อแสดงปีที่จ้างพนักงานแต่ละคน |
MinusThirty: Date( )- 30 |
สร้างเขตข้อมูลที่เรียกว่า ลบสามสิบ แล้วใช้ฟังก์ชัน Date เพื่อแสดง 30 วันก่อนหน้าวันที่ปัจจุบัน |
ฟังก์ชันการรวมของ SQL
นิพจน์ในตารางต่อไปนี้ใช้ฟังก์ชัน SQL (ภาษาคิวรีที่มีโครงสร้าง) ที่รวมหรือสรุปข้อมูล บ่อยครั้ง คุณจะเห็นฟังก์ชันเหล่านี้ (ตัวอย่างเช่น Sum, Count และ Avg) ถูกเรียกเป็นฟังก์ชันการรวม
นอกจากฟังก์ชันการรวม Access ยังมีฟังก์ชันการรวม “โดเมน” ที่คุณใช้ในการรวมหรือนับค่าตามที่เลือก ตัวอย่างเช่น คุณสามารถนับเฉพาะค่าภายในช่วงหรือค้นหาค่าจากตารางอื่น ชุดฟังก์ชันการรวมโดเมนจะมี ฟังก์ชัน DSumฟังก์ชัน DCount และ ฟังก์ชัน DAvg
เมื่อต้องการคำนวณผลรวม บ่อยครั้ง คุณจะต้องสร้างคิวรีผลรวม ตัวอย่างเช่น เมื่อต้องการสรุปตามกลุ่ม คุณจำเป็นต้องใช้คิวรีผลรวม เมื่อต้องการเปิดใช้งานคิวรีผลรวมจากเส้นตารางออกแบบคิวรี ให้คลิก ผลรวม บนเมนู มุมมอง
| นิพจน์ | คำอธิบาย |
|---|---|
RowCount: Count(*) |
สร้างเขตข้อมูลที่เรียกว่า นับแถว แล้วใช้ฟังก์ชัน Count เพื่อนับจำนวนระเบียนในคิวรี รวมถึง ระเบียนที่มีเขตข้อมูล null (ว่างเปล่า) |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
สร้างเขตข้อมูลที่เรียกว่า เปอร์เซ็นต์ค่าขนส่งสินค้า แล้วคำนวณเปอร์เซ็นต์ค่าขนส่งของแต่ละผลรวมย่อย โดยการหารผลรวมของค่าในเขตข้อมูล ค่าขนส่งสินค้า ด้วยผลรวมของค่าในเขตข้อมูล ผลรวมย่อย (ตัวอย่างนี้ใช้ฟังก์ชัน Sum) คุณต้องใช้นิพจน์นี้กับคิวรีผลรวม ถ้าคุณตั้งค่าคุณสมบัติ รูปแบบ ของเขตข้อมูลเป็น เปอร์เซ็นต์ ไม่ต้องรวม *100สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคิวรีผลรวม ให้ดูบทความ รวมข้อมูลโดยใช้คิวรี |
AverageFreight: DAvg("[Freight]", "[Orders]") |
สร้างเขตข้อมูลที่เรียกว่า ค่าขนส่งสินค้าโดยเฉลี่ย แล้วใช้ฟังก์ชัน DAvg เพื่อคำนวณค่าขนส่งโดยเฉลี่ยของการสั่งซื้อทั้งหมดที่รวมอยู่ในคิวรีผลรวม |
เขตข้อมูลที่มีข้อมูลขาดหายไป
นิพจน์ที่แสดงที่นี่ทำงานกับเขตข้อมูลที่มีข้อมูลบางส่วนหายไป เช่น เขตข้อมูลที่มีค่า null (ไม่ทราบหรือไม่สามารถระบุ) คุณจะพบค่า Null บ่อยครั้ง เช่น ราคาที่ไม่ทราบของผลิตภัณฑ์ใหม่ หรือค่าที่เพื่อนร่วมงานลืมเพิ่มในการสั่งซื้อ ความสามารถในการค้นหาและประมวลผลค่า null อาจเป็นส่วนสำคัญของการดำเนินการฐานข้อมูล และนิพจน์ในตารางต่อไปนี้จะแสดงวิธีทั่วไปในการจัดการกับค่า null
| นิพจน์ | คำอธิบาย |
|---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
สร้างเขตข้อมูลที่เรียกว่า ภูมิภาคประเทศปัจจุบัน แล้วใช้ฟังก์ชัน IIf และ IsNull เพื่อแสดงสตริงว่างในเขตข้อมูล เมื่อเขตข้อมูล ภูมิภาคประเทศ มีค่า null มิฉะนั้น จะแสดงเนื้อหาของเขตข้อมูล ภูมิภาคประเทศ |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
สร้างเขตข้อมูลที่เรียกว่า เวลาเตรียมการ แล้วใช้ฟังก์ชัน IIf และ IsNull เพื่อแสดงข้อความ "ตรวจสอบวันที่หายไป" ถ้าค่าในเขตข้อมูล RequiredDate หรือเขตข้อมูล ShippedDate เป็น null มิฉะนั้น จะแสดงความแตกต่างของวันที่ |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
สร้างเขตข้อมูลที่เรียกว่า SixMonthSales แล้วแสดงผลรวมของค่าในเขตข้อมูล ยอดขายไตรมาสที่ 1 และ ยอดขายไตรมาสที่ 2 โดยใช้ฟังก์ชัน Nz เพื่อแปลงค่า null ให้เป็นศูนย์ |
เขตข้อมูลจากการคำนวณที่มีคิวรีย่อย
คุณสามารถใช้คิวรีซ้อนกัน หรือที่เรียกว่าคิวรีย่อย เพื่อสร้างเขตข้อมูลที่ผ่านการคำนวณ นิพจน์ในตารางต่อไปนี้เป็นตัวอย่างหนึ่งของเขตข้อมูลที่ผ่านการคำนวณที่เป็นผลลัพธ์จากคิวรีย่อย
| นิพจน์ | คำอธิบาย |
|---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
สร้างเขตข้อมูลที่เรียกว่า ประเภท แล้วแสดง CategoryName ถ้า CategoryID จากตาราง ประเภท เหมือนกับ CategoryID จากตาราง ผลิตภัณฑ์ |
ตรงกับค่าข้อความ
ตัวอย่างนิพจน์ในตารางนี้จะแสดงเกณฑ์ที่ตรงกับค่าข้อความทั้งหมดหรือบางส่วน
| เขตข้อมูล | นิพจน์ | คำอธิบาย |
|---|---|---|
| ShipCity | "London" |
แสดงการสั่งซื้อที่จัดส่งไปยังลอนดอน |
| ShipCity | "London" Or "Hedge End" |
ใช้ตัว Or ดําเนินการเพื่อแสดงการสั่งซื้อที่จัดส่งไปยังลอนดอนหรือเฮดจ์เอนด์ |
| ShipCountryRegion | In("Canada", "UK") |
Inใช้ตัวดําเนินการเพื่อแสดงการสั่งซื้อที่จัดส่งไปยังแคนาดาหรือสหราชอาณาจักร |
| ShipCountryRegion | Not "USA" |
Notใช้ตัวดําเนินการเพื่อแสดงการสั่งซื้อที่จัดส่งไปยังประเทศ/ภูมิภาคอื่นที่ไม่ใช่สหรัฐอเมริกา |
| ProductName | Not Like "C*" |
ใช้ตัว Not ดําเนินการและ * อักขระตัวแทนเพื่อแสดงผลิตภัณฑ์ที่มีชื่อที่ไม่ได้ขึ้นต้นด้วย C |
| CompanyName | >="N" |
แสดงการสั่งซื้อที่จัดส่งไปยังบริษัทที่มีชื่อที่ขึ้นต้นด้วยตัวอักษรNผ่านZ |
| รหัสผลิตภัณฑ์ | Right([ProductCode], 2)="99" |
ใช้ฟังก์ชัน Right เพื่อแสดงการสั่งซื้อที่มีค่า ProductCode ที่ลงท้ายด้วย99 |
| ShipName | Like "S*" |
แสดงการสั่งซื้อที่จัดส่งไปยังลูกค้าที่มีชื่อที่ขึ้นต้นด้วยตัวอักษรS |
ตรงกับเกณฑ์วันที่
นิพจน์ในตารางต่อไปนี้แสดงการใช้วันที่และฟังก์ชันที่เกี่ยวข้องในนิพจน์เกณฑ์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใส่และการใช้ค่าวันที่ ให้ดูบทความ จัดรูปแบบเขตข้อมูลวันที่และเวลา
| เขตข้อมูล | นิพจน์ | คำอธิบาย |
|---|---|---|
| ShippedDate | #2/2/2017# |
แสดงการสั่งซื้อที่จัดส่งในวันที่ 2 กุมภาพันธ์ 2017 |
| ShippedDate | Date() |
แสดงการสั่งซื้อที่จัดส่งในวันนี้ |
| RequiredDate | Between Date( ) And DateAdd("m", 3, Date( )) |
ใช้ตัว Between...And ดําเนินการและฟังก์ชัน DateAdd และ Date เพื่อแสดงการสั่งซื้อที่จําเป็นระหว่างวันที่ของวันนี้และสามเดือนนับจากวันที่ของวันนี้ |
| OrderDate | < Date( ) - 30 |
ใช้ฟังก์ชัน Date เพื่อแสดงการสั่งซื้อที่มีระยะเวลานานกว่า 30 วัน |
| OrderDate | Year([OrderDate])=2017 |
ใช้ฟังก์ชัน Year เพื่อแสดงการสั่งซื้อที่มีวันที่สั่งซื้อในปี 2017 |
| OrderDate | DatePart("q", [OrderDate])=4 |
ใช้ฟังก์ชัน DatePart เพื่อแสดงการสั่งซื้อสำหรับไตรมาสที่สี่ของปฏิทิน |
| OrderDate | DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
ใช้ฟังก์ชัน DateSerial, Year และ Month เพื่อแสดงการสั่งซื้อในวันสุดท้ายของแต่ละเดือน |
| OrderDate | Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
ใช้ฟังก์ชัน Year และ Month และตัวดำเนินการ And เพื่อแสดงการสั่งซื้อในปีและเดือนปัจจุบัน |
| ShippedDate | Between #1/5/2017# And #1/10/2017# |
Between...Andใช้ตัวดําเนินการเพื่อแสดงการสั่งซื้อที่จัดส่งไม่เกิน 5 ม.ค. 2017 และไม่เกิน 10 ม.ค. 2017 |
| RequiredDate | Between Date( ) And DateAdd("M", 3, Date( )) |
ใช้ตัว Between...And ดําเนินการเพื่อแสดงการสั่งซื้อที่จําเป็นระหว่างวันที่ของวันนี้และสามเดือนนับจากวันนี้ |
| วันเกิด | Month([BirthDate])=Month(Date()) |
ใช้ฟังก์ชัน Month และ Date เพื่อแสดงพนักงานที่มีวันเกิดในเดือนนี้ |
ค้นหาข้อมูลที่ขาดหายไป
นิพจน์ในตารางต่อไปนี้ทำงานกับเขตข้อมูลที่มีข้อมูลบางส่วนหายไป — ซึ่งอาจมีค่า null หรือสตริงที่มีความยาวเป็นศูนย์ ค่า Null แสดงถึงการขาดข้อมูล ซึ่งไม่ได้หมายถึงค่าศูนย์หรือค่าใดๆ เลย Access สนับสนุนแนวคิดเกี่ยวกับข้อมูลที่หายไป เนื่องจากเป็นแนวคิดที่สำคัญในการรวมฐานข้อมูล ในชีวิตจริง ข้อมูลมักหายไปบ่อยครั้ง แม้ว่าจะเป็นเพียงชั่วคราว (ตัวอย่างเช่น ยังไม่ได้กำหนดราคาของผลิตภัณฑ์ใหม่) ดังนั้น ฐานข้อมูลที่จำลองสิ่งต่างๆ ในชีวิตจริง เช่น ธุรกิจ จะต้องสามารถบันทึกข้อมูลเป็น หายไป ได้ คุณสามารถใช้ฟังก์ชัน IsNull ในการกำหนด ถ้าเขตข้อมูลหรือตัวควบคุมมีค่า null และคุณอาจใช้ฟังก์ชัน Nz เพื่อแปลงค่า null เป็นศูนย์
| เขตข้อมูล | นิพจน์ | คำอธิบาย |
|---|---|---|
| ShipRegion | Is Null |
แสดงการสั่งซื้อของลูกค้าที่มีเขตข้อมูล ShipRegion เป็น null (หายไป) |
| ShipRegion | Is Not Null |
แสดงการสั่งซื้อของลูกค้าที่มีเขตข้อมูล ShipRegion ที่มีค่า |
| โทรสาร | "" |
แสดงการสั่งซื้อของลูกค้าที่ไม่มีเครื่องโทรสาร ระบุด้วยค่าสตริงที่มีความยาวเป็นศูนย์ในเขตข้อมูล แฟกซ์ แทนที่จะเป็นค่า null (หายไป) |
ตรงกับรูปแบบระเบียนที่มี Like
ตัว Like ดําเนินการมีความยืดหยุ่นมากเมื่อคุณพยายามจับคู่แถวที่เป็นไปตามรูปแบบ เนื่องจากคุณสามารถใช้ Like กับอักขระตัวแทนและกําหนดรูปแบบเพื่อให้ Access จับคู่ได้ ตัวอย่างเช่น * อักขระตัวแทน (เครื่องหมายดอกจัน) จะตรงกับลําดับของอักขระชนิดใดๆ และทําให้ง่ายต่อการค้นหาชื่อทั้งหมดที่ขึ้นต้นด้วยตัวอักษร ตัวอย่างเช่น คุณใช้นิพจน์Like "S*"เพื่อค้นหาชื่อทั้งหมดที่ขึ้นต้นด้วยตัวอักษร S สําหรับข้อมูลเพิ่มเติม ให้ดูบทความ ตัวดําเนินการ Like
| เขตข้อมูล | นิพจน์ | คำอธิบาย |
|---|---|---|
| ShipName | Like "S*" |
ค้นหาระเบียนทั้งหมดในเขตข้อมูล ShipName ที่ขึ้นต้นด้วยตัวอักษร S |
| ShipName | Like "*Imports" |
ค้นหาระเบียนทั้งหมดในเขตข้อมูล ShipName ที่ลงท้ายด้วยคำว่า “นำเข้า" |
| ShipName | Like "[A-D]*" |
ค้นหาระเบียนทั้งหมดในเขตข้อมูล ShipName ที่ขึ้นต้นด้วยตัวอักษร A, B, C หรือ D |
| ShipName | Like "*ar*" |
ค้นหาระเบียนทั้งหมดในเขตข้อมูล ShipName ที่มีลำดับอักษร "ar" |
| ShipName | Like "Maison Dewe?" | ค้นหาระเบียนทั้งหมดในเขตข้อมูล ShipName ที่มี “Maison" ในส่วนแรกของค่าและสตริงห้าตัวอักษรที่มีตัวอักษรสี่ตัวแรกเป็น “Dewe" และไม่ทราบตัวอักษรตัวสุดท้าย |
| ShipName | Not Like "A*" |
ค้นหาระเบียนทั้งหมดในเขตข้อมูล ShipName ที่ไม่ได้ขึ้นต้นด้วยตัวอักษร A |
ตรงกับแถวที่มีการรวม SQL
คุณสามารถใช้ฟังก์ชันการรวม SQL หรือโดเมนเมื่อคุณต้องการรวม นับ หาค่าเฉลี่ยตามที่เลือก ตัวอย่างเช่น คุณอาจต้องการนับเฉพาะค่าที่อยู่ในช่วงที่ระบุ หรือค่าที่ประเมินเป็น ใช่ ในบางครั้ง คุณอาจต้องค้นหาค่าจากตารางอื่นเพื่อให้คุณสามารถแสดงได้ ตัวอย่างนิพจน์ในตารางต่อไปนี้ใช้ฟังก์ชันการรวมโดเมนเพื่อทำการคำนวณชุดของค่า และใช้ผลลัพธ์เป็นเกณฑ์ของคิวรี
| เขตข้อมูล | นิพจน์ | คำอธิบาย |
|---|---|---|
| ค่าขนส่งสินค้า | > (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
ใช้ฟังก์ชัน DStDev และ DAvg เพื่อแสดงการสั่งซื้อทั้งหมดที่มีค่าขนส่งสูงกว่าค่าเฉลี่ยรวมกับค่าเบี่ยงเบนมาตรฐานของค่าขนส่ง |
| ปริมาณ | > DAvg("[Quantity]", "[Order Details]") |
ใช้ฟังก์ชัน DAvg เพื่อแสดงผลิตภัณฑ์ที่มีจำนวนการสั่งซื้อสูงกว่าจำนวนการสั่งซื้อโดยเฉลี่ย |
ตรงกับเขตข้อมูลที่มีคิวรีย่อย
คุณใช้คิวรีย่อย หรือที่เรียกว่าคิวรีซ้อนกัน ในคำนวณค่าสำหรับการใช้เป็นเกณฑ์ ตัวอย่างนิพจน์ในตารางต่อไปนี้จะจับคู่แถวตามผลลัพธ์ที่ส่งกลับโดยคิวรีย่อย
| เขตข้อมูล | นิพจน์ | แสดง |
|---|---|---|
| UnitPrice | (SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
ผลิตภัณฑ์ที่มีราคาเหมือนกับราคา น้ำเชื่อม Aniseed |
| UnitPrice | >(SELECT AVG([UnitPrice]) FROM [Products]) |
ผลิตภัณฑ์ที่มีราคาต่อหน่วยสูงกว่าค่าเฉลี่ย |
| เงินเดือน | > ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
เงินเดือนของพนักงานขายทุกคนที่มีเงินเดือนสูงกว่าพนักงานทุกคนที่มี “ผู้จัดการ" หรือ "รองประธาน" อยู่ในตำแหน่งงานของพวกเขา |
| ยอดรวมการสั่งซื้อ: [UnitPrice] * [ปริมาณ] | > (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
การสั่งซื้อที่มีผลรวมสูงกว่าค่าการสั่งซื้อโดยเฉลี่ย |
คิวรีการอัปเดต
คุณสามารถใช้คิวรีอัปเดตเพื่อปรับเปลี่ยนข้อมูลในเขตข้อมูลอย่างน้อยหนึ่งเขตข้อมูลที่มีอยู่ในฐานข้อมูล ตัวอย่างเช่น คุณสามารถแทนที่ค่าหรือลบค่าทั้งหมด ตารางนี้แสดงวิธีการใช้นิพจน์ในคิวรีอัปเดต คุณใช้นิพจน์เหล่านี้ในแถว อัปเดตเป็น ในเส้นตารางออกแบบคิวรีสำหรับเขตข้อมูลที่คุณต้องการอัปเดต
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคิวรีอัปเดต โปรดดูบทความ สร้างคิวรีแบบใช้อัปเดตข้อมูล
| เขตข้อมูล | นิพจน์ | ผลลัพธ์ |
|---|---|---|
| ชื่อเรื่อง | "Salesperson" |
เปลี่ยนค่าข้อความเป็น พนักงานขาย |
| วันเริ่มต้นโครงการ | #8/10/17# |
เปลี่ยนค่าวันที่เป็น 10 ส.ค. 17 |
| เกษียณ | Yes |
เปลี่ยนค่า ไม่ใช่ ในเขตข้อมูล ใช่/ไม่ใช่ เป็น ใช่ |
| "PN" & [หมายเลขชิ้นส่วน] | "PN" & [PartNumber] |
เพิ่ม PN ไปยังจุดเริ่มต้นของหมายเลขชิ้นส่วนแต่ละหมายเลข |
| ยอดรวมรายการ | [UnitPrice] * [Quantity] |
คำนวณผลคูณของ UnitPrice และ ปริมาณ |
| ค่าขนส่งสินค้า | [Freight] * 1.5 |
เพิ่มค่าขนส่งสินค้าอีก 50 เปอร์เซ็นต์ |
| ยอดขาย | DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
เมื่อค่า ProductID ในตารางปัจจุบันตรงกับค่า ProductID ในตาราง รายละเอียดการสั่งซื้อ ให้อัปเดตยอดขายรวมตามผลคูณของ ปริมาณ และ UnitPrice |
| ShipPostalCode | Right([ShipPostalCode], 5) |
ตัดอักขระด้านซ้ายสุด เหลือไว้เพียงอักขระทางขวาสุดห้าตัว |
| UnitPrice | Nz([UnitPrice]) |
เปลี่ยนค่า null (ไม่สามารถระบุหรือไม่ทราบ) เป็นศูนย์ (0) ในเขตข้อมูล UnitPrice |
คำสั่ง SQL
ภาษาคิวรีที่มีโครงสร้างหรือ SQL คือภาษาคิวรีที่ Access ใช้ ทุกคิวรีที่คุณสร้างในมุมมองออกแบบคิวรีสามารถแสดงได้โดยใช้ SQL เมื่อต้องการดูคำสั่ง SQL ของคิวรีต่างๆ ให้คลิก มุมมอง SQL บนเมนู มุมมอง ตารางต่อไปนี้แสดงตัวอย่างคำสั่ง SQL ที่ใช้นิพจน์
| คำสั่ง SQL ที่ใช้นิพจน์ | ผลลัพธ์ |
|---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
แสดงค่าในเขตข้อมูล FirstName และ LastName สำหรับพนักงานที่มีนามสกุล Danseglio |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
แสดงค่าในเขตข้อมูล ProductID และ ProductName ในตาราง ผลิตภัณฑ์ สำหรับระเบียนที่มีค่า CategoryID ตรงกับค่า CategoryID ที่ระบุในแบบฟอร์ม ผลิตภัณฑ์ใหม่ |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
คำนวณราคาที่เพิ่มขึ้นโดยเฉลี่ยสำหรับการสั่งซื้อที่มีค่าในเขตข้อมูล ExtendedPrice มากกว่า 1000 และแสดงในเขตข้อมูลที่ชื่อ ราคาที่เพิ่มขึ้นโดยเฉลี่ย |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
ในเขตข้อมูลที่ชื่อ CountOfProductID จะแสดงจำนวนรวมของผลิตภัณฑ์ของประเภทที่มีผลิตภัณฑ์มากกว่า 10 รายการ |
นิพจน์ตาราง
วิธีทั่วไปสองวิธีในการใช้นิพจน์ในตารางคือการกำหนดค่าเริ่มต้นและการสร้างกฎการตรวจสอบ
ค่าเริ่มต้นของเขตข้อมูล
เมื่อคุณออกแบบฐานข้อมูล คุณอาจต้องการกำหนดค่าเริ่มต้นให้กับเขตข้อมูลหรือตัวควบคุม เข้าถึงแล้วใส่ค่าเริ่มต้น เมื่อระเบียนใหม่ที่มีเขตข้อมูลถูกสร้างขึ้น หรือเมื่อวัตถุที่มีตัวควบคุมถูกสร้างขึ้น นิพจน์ในตารางต่อไปนี้แสดงตัวอย่างค่าเริ่มต้นของเขตข้อมูลหรือตัวควบคุม ถ้าตัวควบคุมถูกผูกไว้กับเขตข้อมูลในตาราง และเขตข้อมูลมีค่าเริ่มต้น ค่าเริ่มต้นของตัวควบคุมจะถูกใช้ก่อน
| เขตข้อมูล | นิพจน์ | ค่าเขตข้อมูลเริ่มต้น |
|---|---|---|
| ปริมาณ | 1 |
1 |
| ภูมิภาค | "MT" |
MT |
| ภูมิภาค | "New York, N.Y." |
นิวยอร์ก N.Y. (โปรดสังเกตว่าคุณต้องใส่ค่าในเครื่องหมายอัญประกาศ ถ้ามีเครื่องหมายวรรคตอน) |
| โทรสาร | "" |
สตริงที่มีความยาวเป็นศูนย์ระบุว่า ตามค่าเริ่มต้น เขตข้อมูลนี้ควรจะว่างเปล่าแทนที่จะมีค่า null |
| วันที่สั่งซื้อ | Date( ) |
วันที่ของวันนี้ |
| วันครบกำหนด | Date() + 60 |
60 วันนับจากวันนี้ |
กฎการตรวจสอบความถูกต้องของเขตข้อมูล
คุณสามารถสร้างกฎการตรวจสอบสำหรับเขตข้อมูลหรือตัวควบคุมได้โดยใช้นิพจน์ Access จะบังคับใช้กฎ เมื่อข้อมูลถูกใส่ลงในเขตข้อมูลหรือตัวควบคุม เมื่อต้องการสร้างกฎการตรวจสอบ คุณต้องปรับเปลี่ยนคุณสมบัติ กฎการตรวจสอบ ของเขตข้อมูลหรือตัวควบคุม คุณควรพิจารณาการตั้งค่าคุณสมบัติ ข้อความตรวจสอบ ซึ่งมีข้อความที่ Access แสดงเมื่อมีละเมิดกฎการตรวจสอบ ถ้าคุณไม่ได้ตั้งค่าคุณสมบัติ ข้อความตรวจสอบ Access จะแสดงข้อความแสดงข้อผิดพลาดเริ่มต้น
ตัวอย่างในตารางต่อไปนี้แสดงนิพจน์กฎการตรวจสอบสำหรับคุณสมบัติ กฎการตรวจสอบ และข้อความที่เกี่ยวข้องสำหรับคุณสมบติ ข้อความตรวจสอบ
| คุณสมบัติ ValidationRule | คุณสมบัติ ValidationText |
|---|---|
<> 0 |
โปรดใส่ค่าที่ไม่ใช่ค่าศูนย์ |
0 Or > 100 |
ค่าต้องเป็น 0 หรือมากกว่า 100 |
Like "K???" |
ค่าต้องเป็นอักขระสี่ตัว ที่ขึ้นต้นด้วยตัวอักษร K |
< #1/1/2017# |
ใส่วันที่ก่อนวันที่ 1/1/2017 |
>= #1/1/2017# And < #1/1/2008# |
วันที่ต้องอยู่ในช่วงปี 2017 |
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบข้อมูล ให้ดูบทความ สร้างกฎการตรวจสอบเพื่อตรวจสอบข้อมูลในเขตข้อมูล
นิพจน์แมโคร
ในบางกรณี คุณอาจต้องการดำเนินการแอคชันหรือชุดแอคชันในแมโคร เมื่อเงื่อนไขบางอย่างเป็นจริงเท่านั้น ตัวอย่างเช่น สมมติว่าคุณต้องการให้แอคชันดำเนินการเมื่อค่าของกล่องข้อความตัวนับเท่ากับ 10 คุณใช้นิพจน์เพื่อกําหนดเงื่อนไขในบล็อก If ดังนี้
[Counter]=10
เช่นเดียวกับคุณสมบัติ กฎการตรวจสอบ นิพจน์ในบล็อก If เป็นนิพจน์เงื่อนไข ซึ่งต้องแก้ไขเป็น True ค่า หรือ False อย่างใดอย่างหนึ่ง แอคชันจะเกิดขึ้นเมื่อเงื่อนไขเป็นจริงเท่านั้น
| ใช้นิพจน์นี้เพื่อดำเนินการแอคชัน | If |
|---|---|
[City]="Paris" |
ปารีส คือค่า เมือง ในเขตข้อมูลบนแบบฟอร์มที่เรียกใช้แมโคร |
DCount("[OrderID]", "Orders") > 35 |
มีรายการมากกว่า 35 รายการในเขตข้อมูล OrderID ของตารางการสั่งซื้อ |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
มีรายการมากกว่าสามรายการในตาราง รายละเอียดการสั่งซื้อ สำหรับเขตข้อมูล OrderID ของตารางที่ตรงกับเขตข้อมูล OrderID บนแบบฟอร์ม การสั่งซื้อ |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
ค่าของเขตข้อมูล ShippedDate บนแบบฟอร์มที่เรียกใช้แมโครอยู่ระหว่างวันที่ 2 ก.พ. 2017 และ 2 มี.ค. 2017 |
Forms![Products]![UnitsInStock] < 5 |
ค่าของเขตข้อมูล สินค้าคงคลัง บนแบบฟอร์ม ผลิตภัณฑ์ น้อยกว่า 5 |
IsNull([FirstName]) |
ค่า FirstName บนแบบฟอร์มที่เรียกใช้แมโครเป็น null (ไม่มีค่า) นิพจน์นี้จะเท่ากับ [FirstName] Is Null |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
ค่าในเขตข้อมูล ภูมิภาคประเทศ บนแบบฟอร์มที่เรียกใช้แมโครคือ สหราชอาณาจักร และค่าของเขตข้อมูล TotalOrds บนแบบฟอร์ม SalesTotal มีค่ามากกว่า 100 |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
ค่าในเขตข้อมูล ภูมิภาคประเทศ บนแบบฟอร์มที่เรียกใช้แมโครคือ ฝรั่งเศส อิตาลี หรือสเปน และรหัสไปรษณีย์มีความยาวที่ไม่ใช่อักขระ 5 ตัว |
MsgBox("Confirm changes?",1)=1 |
คุณคลิก ตกลง ในกล่องโต้ตอบกล่องที่ฟังก์ชัน MsgBox แสดง ถ้าคุณคลิก ยกเลิก ในกล่องโต้ตอบ Access จะละเว้นแอคชัน |