บทความนี้มีตัวอย่างนิพจน์ใน Access นิพจน์รวมตัวดําเนินการทางคณิตศาสตร์หรือทางตรรกศาสตร์ ค่าคงที่ ฟังก์ชัน เขตข้อมูลตาราง ตัวควบคุม และคุณสมบัติเข้าด้วยกันเป็นค่าเดียว คุณสามารถใช้นิพจน์ใน Access เพื่อคํานวณค่าต่างๆ ตรวจสอบความถูกต้องของข้อมูล และตั้งค่าเริ่มต้น
ในบทความนี้
แบบฟอร์มและรายงาน
นิพจน์แบบฟอร์มและรายงานทั้งหมด
| การดําเนินการข้อความค่าในตัวควบคุมอื่นการดําเนินการวันที่ | ส่วนหัวและส่วนท้ายนับ รวม และหาค่าเฉลี่ยเงื่อนไขของสองค่าเท่านั้น | การดําเนินการทางคณิตศาสตร์ฟังก์ชันการรวมของ SQL |
|---|
คิวรีและตัวกรอง
ตาราง
| ค่าเริ่มต้นของเขตข้อมูล | กฎการตรวจสอบความถูกต้องของเขตข้อมูล |
|---|
แมโคร
แบบฟอร์มและรายงาน
ตารางในส่วนนี้แสดงนิพจน์ที่คํานวณค่าในตัวควบคุมบนฟอร์มหรือรายงาน เมื่อต้องการสร้างตัวควบคุมที่ผ่านการคํานวณ ให้ใส่นิพจน์ใน ControlSource คุณสมบัติของตัวควบคุม แทนที่จะใส่ในเขตข้อมูลตารางหรือคิวรี
หมายเหตุ
คุณยังสามารถใช้นิพจน์ในฟอร์มหรือรายงานเมื่อคุณเน้นข้อมูลที่มีการจัดรูปแบบตามเงื่อนไข
การดำเนินการข้อความ
นิพจน์ในตารางต่อไปนี้จะใช้ & ตัวดําเนินการ (และ) + และ (บวก) ในการรวมสตริงข้อความ ใช้ฟังก์ชันที่มีอยู่ภายในเพื่อทํางานกับข้อความ หรือสร้างตัวควบคุมที่ผ่านการคํานวณ
| นิพจน์ | ผลลัพธ์ |
|---|---|
="N/A" |
แสดง N/A |
=[FirstName] & " " & [LastName] |
แสดงค่าที่อยู่ในเขตข้อมูลตารางที่เรียกว่า FirstName และ LastName ในตัวอย่างนี้ ตัว & ดําเนินการจะใช้ในการรวมเขตข้อมูล FirstName อักขระช่องว่าง (อยู่ในเครื่องหมายอัญประกาศ) และเขตข้อมูล LastName |
=Left([ProductName], 1) |
ใช้ฟังก์ชันเพื่อLeftแสดงอักขระแรกของค่าในเขตข้อมูลหรือตัวควบคุมที่เรียกว่าProductName |
=Right([AssetCode], 2) |
ใช้Rightฟังก์ชันเพื่อแสดงอักขระสองตัวสุดท้ายของค่าในเขตข้อมูลหรือตัวควบคุมที่เรียกว่าAssetCode |
=Trim([Address]) |
ใช้ Trim ฟังก์ชันเพื่อแสดงค่าของ Address ตัวควบคุมหลังจากนําช่องว่างนําหน้าและต่อท้ายออก |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
ใช้ฟังก์ชันเพื่อ IIf แสดงค่าของตัวควบคุม AND CityPostalCode ถ้า Region ตัวควบคุมเป็น null มิฉะนั้น จะแสดงค่าของ City, , Regionและ PostalCode ตัวควบคุม ซึ่งคั่นโดยช่องว่าง |
=[City] & (" " + [Region]) & " " & [PostalCode] |
ใช้ + ตัวดําเนินการและการเผยแพร่ค่า null เพื่อแสดงค่าของตัวควบคุม and CityPostalCode ถ้าค่าใน Region เขตข้อมูลหรือตัวควบคุมเป็น null มิฉะนั้น จะแสดงค่าของ City, , Regionและ PostalCode เขตข้อมูลหรือตัวควบคุม ซึ่งคั่นโดยช่องว่าง การเผยแพร่ที่ค่า Null หมายความว่าถ้าส่วนใดส่วนหนึ่งของนิพจน์มีค่า null ทั้งนิพจน์จะมีค่าเป็น null
+ตัวดําเนินการสนับสนุนการเผยแพร่ค่า null แต่&ตัวดําเนินการไม่สนับสนุน |
หัวกระดาษและท้ายกระดาษ
ใช้ Page คุณสมบัติ And 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 ได้โดยใช้ฟังก์ชัน Nz เพื่อแปลงค่า null เป็นศูนย์ ตัวอย่างเช่น ใช้ =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 |
แสดงเปอร์เซ็นต์ของยอดขาย โดยการหารค่าของ Sales ตัวควบคุมด้วยผลรวมของค่าทั้งหมดใน Sales ตัวควบคุม ถ้าคุณตั้งค่า Format คุณสมบัติของตัวควบคุมเป็น Percentไม่ต้องรวมไว้ใน *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: อาร์กิวเมนต์แรกคือนิพจน์ที่ต้องส่งกลับค่า หรือTrueFalse อาร์กิวเมนต์ที่สองคือค่าที่จะส่งกลับ ถ้านิพจน์เป็นจริง และอาร์กิวเมนต์สามเป็นค่าที่จะส่งกลับ ถ้านิพจน์เป็นเท็จ
| นิพจน์ | คำอธิบาย |
|---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
ใช้ฟังก์ชัน IIf (Immediate If) เพื่อแสดงข้อความ "การสั่งซื้อได้รับการยืนยัน" ถ้าค่าของตัวควบคุม ยืนยัน เป็น 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 ตัวดําเนินการเพื่อใส่วันที่เริ่มต้นและวันที่สิ้นสุดและจํากัดผลลัพธ์ของคิวรีของคุณไปยังการสั่งซื้อที่จัดส่งระหว่างวันที่เหล่านั้น
ส่วนต่อไปนี้มีตัวอย่างนิพจน์สําหรับใช้ในคิวรี
การดําเนินการข้อความในคิวรี
นิพจน์ในตารางต่อไปนี้จะใช้ตัวดําเนินการ And &+ ในการรวมสตริงข้อความ ใช้ฟังก์ชันที่มีอยู่ภายในเพื่อดําเนินการสตริงข้อความ หรือดําเนินการบนข้อความเพื่อสร้างเขตข้อมูลที่ผ่านการคํานวณ
| นิพจน์ | คำอธิบาย |
|---|---|
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 |
สร้างเขตข้อมูลที่เรียกว่า FreightPercentageแล้วแสดงเปอร์เซ็นต์ของค่าขนส่งของแต่ละผลรวมย่อย นิพจน์นี้ใช้ Sum ฟังก์ชันเพื่อหาผลรวมของค่าใน Freight เขตข้อมูล แล้วหารผลรวมเหล่านั้นด้วยผลรวมของค่าใน Subtotal เขตข้อมูล เมื่อต้องการใช้นิพจน์นี้ ให้แปลงคิวรีที่เลือกของคุณเป็นคิวรีผลรวม คุณต้องใช้แถว ผลรวม ในตารางออกแบบ และตั้งค่าเซลล์ผล รวม สําหรับเขตข้อมูล Expressionนี้เป็น สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคิวรีผลรวม ให้ดูที่ รวมข้อมูลโดยใช้คิวรี ถ้าคุณตั้งค่าคุณสมบัติของFormatเขตข้อมูลเป็น Percentไม่ต้องใส่*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 |
สร้างเขตข้อมูลที่เรียกว่า FreightPercentageแล้วคํานวณเปอร์เซ็นต์ค่าขนส่งของแต่ละผลรวมย่อย โดยการหารผลรวมของค่าใน Freight เขตข้อมูลด้วยผลรวมของค่าใน Subtotal เขตข้อมูล ตัวอย่างนี้ใช้ Sum ฟังก์ชัน คุณต้องใช้นิพจน์นี้กับคิวรีผลรวม ถ้าคุณตั้งค่าคุณสมบัติของFormatเขตข้อมูลเป็น Percentไม่ต้องใส่*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 เพื่อแสดงการสั่งซื้อที่มีค่า รหัสผลิตภัณฑ์ ที่ลงท้ายด้วย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]) |
การสั่งซื้อที่มีผลรวมสูงกว่าค่าการสั่งซื้อโดยเฉลี่ย |
คิวรีการอัปเดต
ใช้คิวรีแบบใช้อัปเดตข้อมูลเพื่อปรับเปลี่ยนข้อมูลในเขตข้อมูลที่มีอยู่ในฐานข้อมูลอย่างน้อยหนึ่งเขตข้อมูล ตัวอย่างเช่น คุณสามารถแทนที่ค่าหรือลบค่าทั้งหมด ตารางนี้จะแสดงวิธีการใช้นิพจน์ในคิวรีการอัปเดต ใช้นิพจน์เหล่านี้ใน Update To แถวในเส้นตารางออกแบบคิวรีสําหรับเขตข้อมูลที่คุณต้องการอัปเดต
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคิวรีอัปเดต โปรดดูบทความ สร้างคิวรีแบบใช้อัปเดตข้อมูล
| เขตข้อมูล | นิพจน์ | ผลลัพธ์ |
|---|---|---|
| ชื่อเรื่อง | "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
Structured Query Language (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 จะบังคับใช้กฎ เมื่อข้อมูลถูกใส่ลงในเขตข้อมูลหรือตัวควบคุม เมื่อต้องการสร้างกฎการตรวจสอบ ให้ปรับเปลี่ยน ValidationRule คุณสมบัติของเขตข้อมูลหรือตัวควบคุม คุณควรพิจารณาการตั้งค่า ValidationText คุณสมบัติ ซึ่งจะเก็บข้อความที่ Access แสดงเมื่อมีละเมิดกฎการตรวจสอบ ถ้าคุณไม่ได้ตั้งค่า ValidationText คุณสมบัติ Access จะแสดงข้อความแสดงข้อผิดพลาดเริ่มต้น
ตัวอย่างในตารางต่อไปนี้แสดงนิพจน์กฎการตรวจสอบสําหรับคุณสมบัติและValidationRuleข้อความที่เกี่ยวข้องกับคุณสมบัติValidationText
| คุณสมบัติ 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
เช่นเดียวกับ ValidationRule คุณสมบัติ นิพจน์ในบล็อก 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 จะละเว้นแอคชัน |