ในบทที่ 1 เราได้กล่าวถึงการสร้างไฟล์ฐานข้อมูลขึ้นมาแล้ว ต่อไปเราจะใช้ Access เริ่มต้นสร้างตารางที่ได้ออกแบบไว้ในบทที่แล้ว เนื่องจากตารางเป็นส่วนประกอบพื้นฐานที่ใช้เก็บข้อมูลที่จะนำมาใช้ในโปรแกรมฐานข้อมูล จึงขอให้ทำความเข้าใจกับการสร้างตารางให้ดี
การสร้างตารางใน Access จะใช้มุมมอง Table Design ซึ่งมีเครื่องมือที่ใช้ในการกำหนดโครงสร้างต่างของตาราง เช่น การกำหนดคุณสมบัติต่างๆของฟิลด์การกำหนดคีย์หลัก เป็นต้น
ในการสร้างตาราง เราเข้าสู่มุมมอง Table Design ได้ดังนี้
1. ให้เราคลิกแท็บ CREATE (สร้าง) จากนั้นคลิกปุ่ม Table Design (ออกแบบตาราง)
2. จะปรากฏมุมมอง Table Design ขึ้นมา
หลังจากที่เราได้เข้ามาในมุมมอง Table Design แล้ว จะปรากฏหน้าต่างที่มีส่วนประกอบต่างๆ ดังรูป
แท็บ Table Design จะมีคำสั่งต่างๆ ที่ช่วยในการออกแบบตาราง ดังรูป
ต่อไปเราจะสร้างฟิลด์ในตารางข้นมาในมุมมอง Table Design โดยใส่ชื่อฟิลด์ และกำหนดคุณสมบัติพื้นฐานของฟิลด์ คือ ชนิดข้อมูล (Data Type) และขนาดของฟิลด์ (Field Size)
การกำหนดคุณสมบัติต่างๆ ก็เพื่อจุดประสงค์ดังนี้
เพื่อให้มีประสิทธิภาพในการทำงาน ทั้งด้านเนื้อที่ที่ใช้ในการเก็บข้อมูล และความเร็วในการทำงานกับข้อมูล เช่น ข้อมูลชนิดข้อความโดยทั่วไปจะเสียเนื้อที่ในการเก็บมากกว่าข้อมูลชนิดตัวเลข และเลขจำนวนเต็มจะใช้เวลาในการคำนวณน้อยกว่าเลขทศนิยม
เพื่อให้ตรงกับจุดประสงค์ในการใช้ข้อมูล เช่น ฟิลด์ราคาสินค้าจะต้องเป็นข้อมูลชนิดตัวเลขที่ใช้ในการคำนวณได้ ไม่ใช่เป็นข้อมูลชนิดข้อความ
ใน Access มีชนิดข้อมูลให้เราเลือกใช้ได้ดังตารางต่อไปนี้
ชนิดข้อมูล |
คำอธิบาย |
Short Text |
เป็นข้อมูลชนิดข้อความที่เก็บตัวอักขระได้ไม่เกิน 255 ตัว โดยจำนวนตัวอักขระที่สามารถเก็บได้สูงสุดจะต้องกำหนดคุณสมบัติ Field Size (จะกล่าวถึงหัวข้อต่อไป) |
Long Text |
เป็นข้อมูลชนิดข้อความเช่นเดียวกับ Short Text แต่สามารถเก็บตัวอักขระได้ไม่เกิน 65,535 ตัว |
Number |
เป็นข้อมูลชนิดตัวเลขที่สามารถกำหนดให้เป็นเลขจำนวนเต็มหรือเลขทศนิยมก็ได้โดยจะกำหนดคุณสมบัติ Field Size |
Date / Time |
เป็นข้อมูลชนิดเวลาและวันที่
|
Currency |
เป็นข้อมูลชนิดตัวเลขทศนิยมที่มีตำแหน่งหลังจุดทศนิยม 4 ตำแหน่งเสมอ จึงเหมาะที่จะใช้เก็บค่าเงินที่ต้องการความถูกต้องแม่นยำ |
AutoNumber |
เป็นข้อมูลชนิดตัวเลขที่จะกำหนดค่าให้แต่ละเรคอร์ดที่เพิ่มเข้าไปในตารางอัตโนมัติโดยอาจจะเพิ่มค่า หรือสุ่มเอา (แล้วแต่จะกำหนดคุณสมบัติ New Values) ชนิดข้อมูลนี้เหมาะสำหรับสร้างฟิลด์ที่เป็นคีย์หลัก เพราะระบบจะเติมค่าที่ไม่ซ้ำกันให้เอง และไม่อนุญาตให้ผู้ใช้แก้ไข หรือเปลี่ยนค่าได้ |
Yes / No |
เป็นข้อมูลชนิดบูลีน ที่มีเพียงค่าใดค่าหนึ่งเท่านั้นในค่า 2 ค่า เราสามารถกำหนดรูปแบบในการแสดงผลเป็น True/False, Yes/No หรือ On/Off ก็ได้
|
OLE Object |
เป็นข้อมูลที่อยู่ของไฟล์ในระบบเครือข่ายอินเตอร์เน็ต หรืออินทราเน็ต
|
Hyperlink |
เป็นข้อมูลที่เก็บไฟล์แนบ เช่น ไฟล์ภาพ หรือไฟล์เอกสาร สามารถเก็บไฟล์แนบได้
|
Attachment
|
เป็นข้อมูลที่เก็บไฟล์แนบ เช่น ไฟล์ภาพ หรือไฟล์เอกสาร สามารถเก็บไฟล์แนบได้พร้อมกันหลายๆไฟล์ |
Calculated |
เป็นข้อมูลที่เก็บสมการใช้สร้างฟิลด์ที่เก็บจากการคำนวณ เช่น [Quantity] * [Unit Price] |
Lookup Wizard |
เป็นข้อมูลที่เชื่อมโยงมาจากตารางอื่น ใช้สร้างฟิลด์แบบ Lookups (ฟิลด์ที่เชื่อมโยงมาจากตารางอื่น) |
นอกจากการกำหนดชนิดข้อมูลที่เหมาะสมให้กับฟิลด์แล้ว เรายังจะต้องกำหนดคุณสมบัติเพิ่มเติมให้กับฟิลด์ด้วย ดังตัวอย่างในการสร้างฟิลด์ ProductName ที่เป็นชื่อสินค้า เราจะกำหนดชนิดข้อมูลเป็น Short Text และ Field Size = 50 หมายความว่าเก็บข้อความได้ 50 อักขระ
คุณสมบัติ Field Size จำใช้กำหนดขนาดของฟิลด์ ซึ่งอยู่ในส่วนที่ 2 (ที่เราเรียกว่า Field Properties) คุณสมบัตินี้จะมีในข้อมูลชนิด Text และ Number เท่านั้น สำหรับข้อมูลชนิด Text จะเป็นการกำหนดจำนวนตัวอักขระที่สามารถเก็บได้สูงสุด ส่วนข้อมูลชนิด Number จะให้เราเลือกชนิดข้อมูลย่อย ซึ่งมีรายละเอียดดังตารางต่อไปนี้
ถ้าข้อมูลย่อยชนิด Single และ Double ใช้เก็บเลขทศนิยมได้แล้ว ทำไมจึงมีข้อมูลชนิด Currency อีก เนื่องจากว่าข้อมูลชนิด Single และ Double เมื่อมีการคำนวณบางอย่างอาจจะมีการปัดเศษได้ ซึ่งไม่เหมาะสมกับการเก็บค่าที่เป็นจำนวนเงิน แต่ข้อมูลชนิด Currency จะเก็บเลขทศนิยม 4 ตำแหน่งเสมอ จึงเหมาะสมในการเก็บจำนวนเงินมากกว่า
อีกคุณสมบัติที่เราจะกล่าวถึง คือ คุณสมบัติ Format สำหรับกำหนดรูปแบบการแสดงผลของชนิดข้อมูลในฟิลด์ที่เลือกอยู่ โดยจะรูปแบบให้เลือกแตกต่างกันไปตามชนิดของข้อมูล ในทีนี้ขอยกตัวอย่างคุณสมบัติ Format ของฟิลด์ที่มีชนิดข้อมูลเป็น Number และ Date/Time
การเลือกชนิดของข้อมูล ขนาดฟิลด์ และรูปแบบการแสดงผล เป็นสิ่งจำเป็นขอให้เราเลือกให้เหมาะสมกับข้อมูลจริงที่เราจะใช้เก็บโดยใช้ตารางรายละเอียดของข้อมูลชนิดต่างๆที่ผ่านมาแล้วช่วยในการตัดสินใจ อย่าสร้างใหญ่เกินไป หรือสร้างเล็กจนไม่พอเก็บ
การสร้างฟิลด์แบบพื้นฐานในหัวข้อนี้ จะเป็นการกำหนดคุณสมบัติต่างๆของฟิลด์ที่เราอธิบายมาแล้วในข้างต้น ซึ่งมีขั้นตอนดังต่อไปนี้
1. ที่มุมมอง Table Design (ออกแบบตาราง) ในส่วนของ Table Design Grid ให้ใส่ชื่อฟิลด์ในคอลัมน์ Field Name (ชื่อเขตข้อมูล)
2. เลือกชนิดข้อมูลที่เหมาะสมจากคอลัมน์ Data Type (ชนิดข้อมูล)
3. ใส่ข้อความอธิบายเพิ่มเติมได้ในคอลัมน์ Description (คำอธิบาย)
4. ในส่วน Field Properties กำหนดคุณสมบัติ Field Size (ขนาดเขตข้อมูล) ให้กับฟิลด์ที่มีชนิดข้อมูลเป็น Text หรือ Number ในตัวอย่างกำหนด Field Size เป็น Long Integer สำหรับชนิดข้อมูลแบบ Number
เราสามารถแทรกฟิลด์ข้อมูลลงไปในตารางในมุมมอง Table Design โดยคลิกแถวที่ต้องการจะแทรกฟิลด์ใหม่ และคลิกปุ่ม Insert Rows (แทรกแถว) จะปรากฏแถวใหม่แทรกอยู่ก่อนหน้าแถวที่เลือก
เราสามารถลบฟิลด์ที่ไม่ต้องการออกจากตารางได้จากมุมมอง Table Design โดยเลือกแถวที่ต้องการลบ และคลิกปุ่ม Delete Rows (ลบแถว)
การกำหนดคีย์หลัก (Primary Key)
จากที่เราได้ออกแบบตารางกันในบทที่แล้ว จะเห็นได้ว่าคีย์หลักเป็นส่วนประกอบของตารางที่สำคัญมาก เมื่อเราสร้างฟิลด์ต่างๆ เสร็จแล้ว ต่อไปเราจะมากำหนดฟิลด์ที่จะเป็นคีย์หลักของตารางนั้นกัน
การกำหนดคีย์หลักของตาราง ให้เราเลือกฟิลด์ที่จะกำหนดเป็นคีย์หลัก จากนั้นให้ไปที่แท็บ DESIGN (ออกแบบ) แล้วคลิกที่ปุ่ม Primary Key (คีย์หลัก) หรือคลิกขวาแล้วเลือกคำสั่ง Primary Key (คีย์หลัก) ก็ได้
หลังจากที่เราได้สร้างตาราง และกำหนดคุณสมบัติเบื้องต้นของฟิลด์ในหัวข้อที่ผ่านมา ต่อไปเราจะป้อนข้อมูลตารางที่เราสร้าง โดยจะทำในมุมมอง Table Datasheet ซึ่งเป็นมุมมองที่เราจะใช้ทำงานกับข้อมูลในตารางได้หลายอย่าง เช่น การเพิ่ม แก้ไข และลบข้อมูลในตาราง เป็นต้น
เราจะกล่าวถึงการใช้งานมุมมอง Table Datasheet เบื้องต้นกันในบทนี้ เพื่อให้เรารู้ว่าใน Access จะเก็บข้อมูลของเราในตารางอย่างไร ส่วนในบทต่อๆไป จะเป็นการใช้งานในมุมมองนี้อย่างละเอียด
การเข้าสู่มุมมอง Table Datasheet ให้เราทำตามขั้นตอนต่อไปนี้
1. จาก Navigation Pane ให้เราเลือกตารางที่จะเข้ามุมมอง Table Datasheet จากนั้นคลิกขวาแล้วเลือกคำสั่ง Open (เปิด) หรือดับเบิ้ลคลิกที่ตารางนั้น
2. จะปรากฏมุมมอง Table Datasheet (มุมมองแผ่นข้อมูล) ขึ้นมา
มุมมอง Table Datasheet จะแสดงข้อมูลในตารางจัดเป็นแถวและคอลัมน์ โดยแถวจะเป็นแต่ละ เรคอร์ด คอลัมน์จะเป็นแต่ละฟิลด์ โดยเรียงลำดับฟิลด์เหมือนกับที่เรากำหนดในมุมมอง Table Datasheet และเราจะเรียกแต่ละช่องในตารางว่า เซลล์ (Cells)
Record Selector: ใช้เลือกเรคอร์ดในตาราง เมื่อเราคลิกที่ปุ่มนี้ หัวแถวเป็นแถบสีดำแสดงว่าเรคอร์ดนั้นถูกเลือกอยู่
สัญลักษณ์ต่างๆ ที่ปรากฏบนปุ่ม Record Selector มีความหมายดังต่อไปนี้
นอกจากนี้ เรายังสามารถไปยังเรคอร์ดที่ต้องการ โดยกรอกหมายเลขของเรคอร์ดลงในช่อง Record Navigator แล้วกดคีย์ <Enter>
การเพิ่มเรคอร์ดลงในตาราง ให้คลิกปุ่ม ที่ Record Navigator หรือคลิกที่แท็บ HOME (หน้าแรก) และเลือกคำสั่ง Record --> New (ระเบียน --> สร้าง) เรคอร์ดใหม่จะถูกสร้างขึ้นมาและเคอร์เซอร์จะไปยังเรคอร์ดนั้น เพื่อให้เราพิมพ์ข้อมูลลงไป
การแก้ไขเรคอร์ดในตาราง ให้กดคีย์ลูกศรซ้ายขวาเลื่อนไปมาระหว่างฟิลด์ต่างๆ ในเรคอร์ดและพิมพ์ข้อมูลลงไป ถ้าต้องการไปยังเรคอรดอื่น ให้ใช้คีย์ลูกศรขึ้นลงเลื่อนไปเรคอร์ดอื่น ดังรูป
การลบเรคอร์ดในตาราง ให้เราเลือกเรคอร์ดทั้งแถวที่ต้องการลบแล้วกดคีย์ <Delete> และยืนยัน
การลบ
ต่อไปให้เราเพิ่มข้อมูลด้วยตนเอง และลองแก้ไข ลบ เรคอร์ดเพิ่มเติม เพื่อให้เกิดความชำนาญในการใช้งานมุมมอง Table Datasheet นี้
เราได้ศึกษาการสร้างตารางเบื้องต้นจากบทที่แล้ว และได้ใส่ข้อมูลต่างๆมาแล้ว สำหรับในบทนี้ เราจะศึกษาเรื่องการเพิ่มความสามารถให้กับตาราง เช่น การตรวจสอบความถูกต้องของข้อมูลที่ป้อนเข้าไป กำหนดรูปแบบการแสดงผลของข้อมูลให้เป็นไปตามต้องการ เป็นต้น และสุดท้ายเราจะมากำหนดความสัมพันธ์ระหว่างตาราง เพื่อทำให้ข้อมูลต่างๆสามารถเชื่อมกันได้เหมือนเป็นตารางใหญ่ตารางหนึ่ง
ถ้าเราต้องการการแสดงผลราคาสินค้าในรูปแบบ 1,234,567.00฿ เราจะใช้คุณสมบัติในการแสดงผลฟิลด์เข้าช่วย เช่น คุณสมบัติ Format, Decimal Places, Caption ซึ่งเราจะกำหนดในมุมมอง Table Design ดังรูป
คุณสมบัติต่างๆ ที่เกี่ยวข้องกับการกำหนดรูปแบบการแสดงผลของฟิลด์ มีดังนี้
- Format เป็นคุณสมบัติที่ใช้กำหนดรูปแบบการแสดงผลของฟิลด์ ซึ่งจะไม่มีผลต่อค่าของข้อมูล นอกเหนือจากรูปแบบที่เลือกได้จากรายการ เราสามารถกำหนดรูปแบบการแสดงผลฟิลด์ได้เอง โดยใช้ข้อมูลในตารางต่อไปนี้
สัญลักษณ์ |
ความหมาย |
ตัวอย่าง |
ว่าง |
แสดงผลแบบธรรมดาทั่วไป |
|
0 |
แสดงผลเป็นตัวเลขนั้น ถ้าไม่มีก็แสดงเป็นเลข 0 |
Format = 0000.00 แสดงเป็น 0124.50 |
# |
แสดงผลเป็นตัวเลขตัวนั้น ตัวเลข 0 ที่อยู่ข้างหน้า และหลังจะไม่แสดง |
Format = ####.## แสดงเป็น 124.5 |
($)(.)(.) |
แสดงสัญลักษณ์ $ . , ในตำแหน่งนั้น |
Format = $#,###,###.00
แสดงเป็น $1,345,345.00 |
E+, e+ |
แสดงค่าในรูปแบบวิทยาศาสตร์ที่มีค่าของเลขชี้กำลังที่มากกว่า 0 |
Format = #.###E+00 ค่า 98.7 แสดงเป็น9.87E+01 |
E-, e- |
แสดงค่าในรูปแบบวิทยาศาสตร์ที่มีค่าของเลขชี้กำลังที่น้อยกว่า 0 |
Format = #.###E-00 ค่า 0.987 แสดงเป็น 9.87E-01 |
/ |
แสดงสัญลักษณ์ / เพื่อแยกวันเดือนปีของข้อมูลชนิด Date ออกจากกัน |
Format = dd/mm/yy ค่า 16/09/14 |
d |
บอกว่าจะแสดงวันวนข้อมูลชนิด Date อย่างไร |
d แสดง 7ม dd แสดง 07, ddd
แสดง Sun และ dddd
แสดงเป็น Sunday |
m |
บอกว่าจะแสดงเดือนในข้อมูลชนิด Date อย่างไร |
m แสดง 2, mm แสดง 02,
mmm แสดง Feb และ
mmmm แสดงเป็น February |
y |
บอกว่าจะแสดงปีในข้อมูลชนิด Date อย่างไร แสดงสัญลักษณ์ : เพื่อแยก ชั่วโมง นาที และวินาทีในข้อมูลชนิด Time ออกจากกัน |
yy แสดง 14, yyy แสดง 2014 |
: |
บอกว่าจะแสดงชั่วโมงในข้อมูล ชนิด Time อย่างไร |
Format = hh:mm:ss ค่า 11:02:56 |
h |
บอกว่าจะแสดงชั่วโมงในข้อมูลชนิด Time อย่างไร |
h แสดงเป็น 3, hh แสดงเป็น 03 |
n |
บอกว่าจะแสดงชั่วโมงในข้อมูลชนิด Time อย่างไร |
n แสดงเป็น 6 nn แสดงเป็น 06 |
s |
บอกว่าจะแสดงวินาทีในข้อมูลชนิด Time อย่างไร |
s แสดงเป็น 5, ss แสดงเป็น 05 |
AM/PM |
บอกว่าจะแสดงเวลาในรูปแบบ 12 ชั่วโมง โดยมี AM หรือ PM ต่อท้าย |
Format = hh:nn AM/PM, ถ้าเวลาเป็น |
> |
แสดงตัวอักษรทุกตัวในฟิลด์เป็นตัวใหญ่ทั้งหมด
แสดงตัวอักษรทุกตัวในฟิลด์เป็นตัวเล็กทั้งหมด |
16:00 จะแสดงเป็น 4:00 PM |
- Decimal Places เป็นคุณสมบัติที่บอกว่าจะให้แสดงตำแหน่งหลังจุดทศนิยมกี่ตำแหน่งจะมีผลเฉพาะกับข้อมูลชนิด Number กับ Currency และมีผลเฉพาะการแสดงผลเท่านั้น ไม่มีผลต่อค่าของข้อมูล (ถ้าค่าใน Decimal Places ไม่สอดคล้องกับค่าในช่อง Format จะตายยึดจำนวนหลักใน Decimal Places)
- Caption เป็นข้อความที่จะให้แสดงบนหัวคอลัมน์ในมุมมอง Table Datasheet แทนที่ ชื่อฟิลด์ ใช้ในกรณีที่เรารู้สึกว่าฟิลด์เข้าใจยาก และอยากให้แสดงเป็นชื่อที่เข้าใจง่ายขึ้น หรือ อาจต้องการให้แสดงเป็นภาษาไทยแทนชื่อฟิลด์ที่เราใช้เป็นภาษาอังกฤษ
หากต้องมีการควบคุมข้อมูลที่ผู้ใช้สามารถป้อนเก็บลงฟิลด์ได้ เช่น ฟิลด์นี้ต้องการให้คีย์ค่าได้ไม่เกิน 5 ตัวอักษร และทุกตัวต้องเป็นตัวเลขเท่านั้น ตัวหนังสือไม่ได้ เราจะใช้คุณสมบัติการกำหนดรูปแบบเข้าช่วย ซึ่งคุณสมบัติดังกล่าวมีดังนี้ Input Mask, Default Value, Required, Allow Zero Length, New Values
- Input Mask เป็นคุณสมบัติที่บอกว่า จะรับข้อมูลที่ผู้ใช้ป้อนในรูปแบบใดได้บ้าง เช่น
- ฟิลด์ ZipCode ใช้เก็บรหัสไปรษณีย์ จะรับข้อมูลที่เป็นตัวเลข (0-9) และรับได้ 5 ตัวเท่านั้น
- ฟิลด์ Telephone ใช้เก็บหมายเลขโทรศัพท์จะรับข้อมูลที่อยู่ในรูปแบบตัวเลข (999)9999999
โดยที่ 9 แทนตัวเลข 1 ตัว หรือช่องว่างก็ได้ เช่น (062)4567890 เป็นต้น
-Default Value เป็นค่าเริ่มต้นของฟิลด์ ถ้ามีการเพิ่มเรคอร์ดโดยไม่กำหนดค่าให้ฟิลด์ค่านี้จะเป็นค่าที่ถูกกำหนดให้กับฟิลด์
-Required ถ้ากำหนดค่าคุณสมบัติเป็น Yes เราจะต้องใส่ข้อมูลลงไปในฟิลด์นี้ทุกครั้งจะเว้นว่างไม่ได้
-Allow Zero Length ถ้ากำหนดค่าคุณสมบัตินี้เป็น Yes ค่าของฟิลด์นี้จะสามารถเป็นข้อความว่างได้ (มีขนาดเป็น 0) ได้
-New Values เป็นคุณสมบัติที่มีเฉพาะฟิลด์ที่ใช้ชนิดข้อมูล AutoNumber เท่านั้นใช้กำหนดว่าจะให้ค่าที่ถูกกำหนดโดยอัตโนมัตินี้เพิ่มขึ้นทีละหนึ่ง (Increment) หรือใช้ค่าสุ่ม (Random)
เราสามารถกำหนดชื่อให้กับหัวข้อคอลัมน์ที่แสดงในมุมมอง Datasheet ได้ที่คุณสมบัติ Caption ซึ่งมักใช้ชื่อที่สื่อความหมายกับคอลัมน์นั้นๆ แทนการแสดงชื่อฟิลด์ข้อมูลโดยตรง ดังตัวอย่างเราจะแทนชื่อฟิลด์ Telephone โดยให้แสดงคำว่า “หมายเลขโทรศัพท์” แทนเพราะเป็นภาษาไทยที่เข้าใจได้ง่าย
หากในตารางของเรามีฟิลด์ที่ต้องจัดเก็บข้อมูลซ้ำๆกัน เราสามารถตั้งค่าเริ่มต้นที่คุณสมบัติ Default Value ในการกรอกข้อมูลให้กับฟิลด์นั้นได้เช่น การกรอกข้อมูลจังหวัด รหัสไปรษณีย์ หรือคำนำหน้าชื่อ เป็นต้น (การกำหนดค่าใน Default Value นั้นไม่สามารถใช้ร่วมกับฟิลด์ที่มีรูปแบบ AutoNumber, OLE Object, Attachment และ Lookup Wizard) ดังตัวอย่างต่อไปนี้ เราจะกำหนดค่าเริ่มต้นให้กับฟิลด์ Province เป็น “กรุงเทพ” เพราะเป็นค่าที่พบค่อนข้างบ่อยจะได้ไม่ต้องเสียเวลากรอกค่านี้ เพราะจะถูกกำหนดให้เป็นค่าเริ่มต้นของฟิลด์อยู่แล้ว
เราสามารถกำหนดค่าส่วนของ Default Value ร่วมกับชนิดข้อมูลอื่นๆได้ ไม่ว่าจะเป็น Date/Time, Number หรือ Yes/No
การตรวจสอบความถูกต้องของข้อมูลที่ผู้ใช้กรอกเข้าไปในตารางนั้นมีความสำคัญ เนื่องจากข้อมูลที่ไม่ถูกต้องจะทำการประมวลผลข้อมูลผิดพลาด ในหัวข้อนี้เราจะมาศึกษาการกำหนดคุณสมบัติของฟิลด์เพื่อตรวจสอบความถูกต้องให้อัตโนมัติ เช่น ในตาราง TblProducts ในฟิลด์ CategoryID หากเรามีสินค้าเพียงแค่ 4 ประเภท ที่แทนตัวเลข 1, 2, 3 และ 4
ก็ไม่ควรอนุญาตให้กรอกเลข 5 ลงไป หรือในฟิลด์ UnitPrice ราคาสินค้าที่กรอกเข้ามาต้องมีค่ามากกว่า 0 เป็นต้น
คุณสมบัติที่ใช้ตรวจสอบความถูกต้องของข้อมูลที่กรอกให้ฟิลด์มีดังนี้
-Validation Rule กำหนดกฎที่ใช้ตรวจสอบความถูกต้องของข้อมูลให้ฟิลด์นี้
-Validation Text เป็นข้อความที่จะให้แสดงเตือน เมื่อผู้ใช้กรอกข้อมูลลงไปในฟิลด์ไม่ถูกต้องตามกฎที่กำหนดไว้ในคุณสมบัติ Validation Rule
สำหรับฟิลด์ที่ชนิดข้อมูลเป็น Date/Time เราสามารถกำหนดให้แสดงปฏิทินเพื่ออำนวยความสะดวกให้กับผู้ใช้ในการกรอกข้อมูลวันที่ โดยกำหนดได้ในคุณสมบัติ Show Date Picker ดังตัวอย่างเราจะให้แสดงปฏิทินเมื่อผู้ใช้คลิกป้อนข้อมูลในฟิลด์ OrderDate
หากเราได้กำหนดรูปแบบการแสดงวันที่ในส่วน Input Mask ไว้ก่อนหน้านี้ เราจะต้องยกเลิกการตั้งค่าในส่วนของ Input Mask ก่อน จึงจะสามารถมาตั้งค่าการใช้งานให้กับ Show Date Picker ได้
เครื่องมือ Lookup Wizard ช่วยให้เราสามารถสร้างลิสต์ข้อมูลใน Datasheet เพื่อให้ผู้ใช้ เลือกกรอกข้อมูลลงในตารางได้ง่ายยิ่งขึ้น ซึ่งเราสามารถใช้ได้กับฟิลด์ที่มีชนิดข้อมูลเป็น Text หรือ Number ดังตัวอย่างเราจะสร้างลิสต์ข้อมูลในฟิลด์ ProductID (รหัสสินค้า)
มาถึงหัวข้อนี้ เราได้สร้างฟิลด์และกำหนดคุณสมบัติของฟิลด์ในแบบที่ต้องการแล้ว ต่อไปเราจะมากำหนดคุณสมบัติของตาราง ซึ่งจะเกี่ยวข้องกับการตรวจสอบค่าฟิลด์ตั้งแต่สองฟิลด์ขึ้นไปในตาราง เช่น วันที่ส่งสินค้าในรายการสั่งสินค้าต้องเป็นวันที่หลังจากวันที่สั่งสินค้า จะเห็นได้ว่าคุณสมบัติของตารางจะเกี่ยวข้องกับทุกฟิลด์ในตาราง ซึ่งเราจะกว่างถึงการกำหนดคุณสมบัติเพื่อตรวจสอบค่าให้แบบอัตโนมัติ
การเรียกหน้าต่างคุณสมบัติของตาราง
เราเรียกหน้าต่างคุณสมบัติของตาราง ได้ดังนี้
1. เปิดตารางในมุมมอง Table Design ที่จะดูคุณสมบัติ
2. ในแท็บ DESIGN (ออกแบบ) ให้เราคลิกปุ่ม Property Sheet (แผ่นคุณสมบัติ) หรือ กดปุ่ม <Alt+Enter> จะปรากฏหน้าต่าง Property Sheet ที่ใช้กำหนดคุณสมบัติให้กับตาราง
หลังจากที่เราได้สร้างตารางที่กำหนดคุณสมบัติต่างๆ ให้กับฟิลด์แล้ว ต่อไปเราจะกำหนดความสัมพันธ์ระหว่างตาราง เพื่อเชื่อมข้อมูลระหว่างตารางเข้าด้วยกัน เมื่อดึงข้อมูลออกมาใช้ ก็จะเป็นการดึงข้อมูลจากหลายตารางที่สัมพันธ์กันเสมือนกับว่าเป็นตารางใหญ่ตารางหนึ่ง
สำหรับการสร้างความสัมพันธ์ระหว่างตาราง เราจึงจำเป็นต้องเข้าใจเรื่อง Enforce Referential Integrity หรือการควบคุมการอ้างอิงค่าระหว่างตาราง ซึ่งมีอยู่ 2 แบบที่เราสามารถกำหนดได้คือ
- Cascade Update Related Fields เป็นการกำหนดว่า เมื่อค่าของฟิลด์ที่เชื่อมกันในตารางหลักมีการเปลี่ยนแปลงจะให้เปลี่ยนแปลงค่าในอีกตารางรองที่เชื่อมโยงด้วยหรือไม่
- Cascade Delete Related Fields เป็นการกำหนดว่า เมื่อเรคอร์ดที่เชื่อมกันในตารางหลักถูกลบจะให้ลบค่าในอีกตารางรองที่เชื่อมโยงด้วยหรือไม่
- Note ตารางหลัก หมายถึง ตารางที่ใช้ Primary Key เป็นตัวเชื่อมความสัมพันธ์ ส่วนตารางรอง หมายถึง ตารางที่ใช้ Foreign Key เป็นตัวเชื่อมความสัมพันธ์
แสดงการสร้างความสัมพันธ์ระหว่างตาราง TblProducts กับ TblCategoris เราจะสังเกตได้ว่า ตารางทั้งสองมีความสัมพันธ์กันผ่านทางฟิลด์ CategoryID โดยจะเป็นความสัมพันธ์แบบ One-to-Many ระหว่างตาราง TblCategories (ตารางหลัก) กับ TblProducts (ตารางรอง)
การกำหนดความสัมพันธ์ระหว่างตารางทั้งสอง ให้เราทำตามขั้นตอนดังต่อไปนี้
1. คลิกที่แท็บ DATABASE TOOLS (เครื่องมือฐานข้อมูล) ให้เราคลิกปุ่ม Relationships
(ความสัมพันธ์) เพื่อแสดงหน้าต่าง Relationships ขึ้นมา
2. จากแถบเครื่องมือ RELATIONSHIP TOOLS (เครื่องมือการทำความสัมพันธ์) ให้ไปที่แท็บ DESIGN (ออกแบบ) และคลิกปุ่ม Show Table (แสดงตาราง) เพื่อแสดงตารางที่จะเขียนความสัมพันธ์
3. จะปรากฏรายการตาราง ให้เราเลือกตาราง TblCategories แล้วคลิกปุ่ม Add และ เลือกตาราง TblProducts แล้วคลิกปุ่ม Add อีกครั้งเพื่อเพิ่ม 2 ตาราง (หรือจะกดคีย์ <Ctrl> ค้างไว้แล้วเลือกทั้งสองตารางแล้วคลิกปุ่ม Add เลยก็ได้) จากนั้นคลิกปุ่ม Close เพื่อปิดหน้าต่าง Show Table
4. ในหน้าต่าง Relationships จะแสดงตารางและความสัมพันธ์ (เส้นสีดำที่ลากระหว่าง 2 ตาราง) ที่ Access สร้างให้อัตโนมัติ
เราสามารถแก้ไขความสัมพันธ์ได้ โดยการดับเบิ้ลคลิกบนเส้นความสัมพันธ์
เราสามารถลบความสัมพันธ์ได้ โดยคลิกเลือกเส้นความสัมพันธ์และกดคีย์ <Delete>
เราสามารถสร้างความสัมพันธ์ใหม่เองได้ โดยการเลือกฟิลด์จากตารางหนึ่ง แล้วลากเมาส์ไปยังฟิลด์ที่จะเชื่อมด้วยของอีกตารางหนึ่
เราสามารถซ่อนตารางที่ไม่ต้องการแสดงได้ โดยคลิกเลือกตารางและกดคีย์ <Delete> ในตอนนี้ให้เราดับเบิลคลิกที่เส้นความสัมพันธ์ เพื่อแก้ไขความสัมพันธ์ในหน้าต่าง Edit Relationships
5. จะปรากฏหน้าต่าง Edit Relationships (การแก้ไขความสัมพันธ์) ให้เรากำหนดฟิลด์ที่จะใช้เชื่อมความสัมพันธ์จากตารางทั้งสอง และกำหนด Enforce Referential Integrity ซึ่งแต่ละตัวเลือกมีความหมายดังต่อไปนี้
- Cascade Update Related Fields กำหนดว่า เมื่อค่าของฟิลด์ที่เชื่อมกันในตารางหลักถูกเปลี่ยนแปลงจะให้เปลี่ยนแปลงที่ตารางอีกฝั่งด้วยหรือไม่
- Cascade Delete Related Fields กำหนดว่า เมื่อเรคอร์ดที่เชื่อมกันในตารางหลักถูกลบจะให้ลบที่ตารางอีกฝั่งด้วยหรือไม่
6. ถ้าต้องการกำหนดรูปแบบการเชื่อม ให้เราคลิกปุ่ม Join Type (ชนิดการรวม) ซึ่งจะมีตัวเลือกต่างๆ ตามลำดับ ที่มีรายละเอียดดังต่อไปนี้
1: เชื่อมแบบที่นำมาเฉพาะเรคอร์ดที่มีค่าของฟิลด์ตรงกันเท่านั้น
2: เชื่อมแบบที่นำเรคอร์ดของตารางด้าน One ทั้งหมดมา และนำเฉพาะเรคอร์ดของตารางฝั่ง Many ที่มีค่าของฟิลด์ตรงกันกับตารางฝั่ง One เท่านั้น
3: เชื่อมแบบที่นำเรคอร์ดของตารางด้าน Many ทั้งหมดมา และนำเฉพาะเรคอร์ดของตารางฝั่ง One ที่มีค่าของฟิลด์ตรงกันกับตารางฝั่ง Many เท่านั้น
ในตัวอย่างนี้ให้เราเลือกข้อ 1 เนื่องจากเราต้องการให้สินค้าทุกชิ้นอยู่ในประเภทสินค้าใดประเภทสินค้าหนึ่งเสมอ
7. เมื่อกำหนดเสร็จแล้ว ให้เราคลิกปุ่ม OK เพื่อแก้ไขความสัมพันธ์
จากนั้นให้เราดูในมุมมอง Table Datasheet ของตาราง TblCategories ซึ่งเป็นตารางหลัก จะเห็นความสัมพันธ์ที่เกี่ยวข้องกับข้อมูลในตาราง TblProducts ดังรูป
เมื่อเราเลือกกำหนดความสัมพันธ์ให้กับตาราง จะปรากฏแถบเครื่องมือ RELATIONSHIP TOOLS (เครื่องมือการทำความสัมพันธ์) ซึ่งจะประกอบด้วย แท็บ DESIGN (ออกแบบ) ที่รวมคำสั่งเกี่ยวกับการเชื่อมความสัมพันธ์ระหว่างตาราง ดังรายละเอียดต่อไปนี้
|