บทที่ 3
การสร้างตาราง (Table)
     ตาราง (Table) คือ องค์ประกอบหลักอย่างหนึ่งในฐานข้อมูล เป็นส่วนที่ต้องสร้างขึ้น เป็นอันดับแรก เพื่อใช้ในการเก็บข้อมูลทั้ง หมดที่อยู่ในฐานข้อมูล โดยในการสร้างตารางนัน้ มีหลายรูปแบบด้วยกัน ซึ่งเราสามารถจัดการกับข้อมูลในตารางเพื่อให้เกิดความสะดวกและรวดเร็วในการทางานมากยิ่งขึ้น ได้ เช่น การเรียงลำดับข้อมูล การกรองข้อมูล และการค้นหาข้อมูล เป็นต้น

มุมมองของตาราง

     มุมมอง (View) คือ รูปแบบการทำงานกับ Table ซึ่ง มีอยู่ด้วยกันทั้ง หมด 4 แบบ ตามลักษณะและวัตถุประสงค์ของการใช้งาน คือ
          1. มุมมอง Design ใช้ในการออกแบบ และแก้ไขโครงสร้างของตาราง เช่น เพิ่มลบเขตข้อมูล (field) แก้ไขชื่อเขตข้อมูล กำหนดชนิดข้อมูล กำหนดคีย์ กำหนดคุณสมบัติต่างๆ ของเขตข้อมูล (Properties) เป็นต้น
          2. มุมมอง Datasheet ใช้ในการป้อนข้อมูล หรือแสดงข้อมูลที่เก็บไว้ในตาราง โดยแสดงในรูปของตาราง ในมุมมองนี้สามารถเพิ่ม ลบ หรือแก้ไขเรคอร์ดได้
          3. มุมมอง PivotTable ใช้วิเคราะห์และสรุปผลข้อมูลในตารางโดยแสดงในรูปของตารางแจกแจงรายละเอียดข้อมูลและสรุปผลข้อมูล
          4. มุมมอง PivotChart ใช้วิเคราะห์และสรุปผลข้อมูลในตารางโดยแสดงในรูปของแผนภูมิหรือ Chart

ส่วนประกอบของตาราง

     1. ไอเท็ม (Item) คือ ข้อมูลที่เก็บอยู่ในแต่ละเซลล์ของตาราง
     2. field (Field) คือ ข้อมูลในแนวคอลัมน์ (แนวตั้ง)
     3. เรคอร์ด (Record) คือ ข้อมูลในแต่ละแถวของตาราง
     4. ตาราง (Table) คือ ส่วนของตารางทั้งหมดที่ใช้ในการเก็บข้อมูล ซงึ่ ถ้านำหลายๆตารางมารวมกันทั้งหมด จะเรียกว่า ฐานข้อมูล หรือ Database

การสร้างตาราง

     1. คลิกแท็บ Create
     2. เลือกปุ่ม Table Design
     3. ตั้งชื่อ Field ในช่อง Field Name
     4. เลือกประเภทของข้อมูลในช่อง Data Type
     5. ใส่รายละเอียดย่อๆ ของแต่ละ field ในช่อง Description (จะใส่หรือไม่ก็ได้)
     6. กำหนดขนาดของ field ในช่องคุณสมบัติ Field Size
การตั้งชื่อ field
     - ชื่อ field ต้องไม่ยาวเกิน 64 ตัวอักษร รวมทั้งช่องว่างด้วย
     - ห้ามตั้งชื่อ field ซ้ำกัน
     - สามารถใช้ตัวอักษร ตัวเลข ช่องว่าง ในการตั้งชื่อ field ได้
     - ห้ามใช้เครื่องหมาย จุด (.) อัศเจรีย์(!) และก้ามปู([ ]) ในการตัง้ ชื่อ field
     - ห้ามเริ่มชื่อ field ด้วยช่องว่าง

ชนิดข้อมูล
     ชนิดข้อมูล (data type) เป็นส่วนที่ใช้กำหนดชนิดของข้อมูลในแต่ละ field โดยต้องเลือกให้สอดคล้องกับข้อมูลที่จะจัดเก็บในแต่ละ field ซงึ่ มีทั้งหมด 11 ชนิด คือ
          1) Text ข้อความที่ประกอบไปด้วยตัวอักขระที่อาจเป็นตัวอักษร สัญลักษณ์พิเศษช่องว่าง หรือตัวเลขประกอบกัน ซึ่งถ้าเป็นตัวเลขอย่างเดียวจะต้องเป็นตัวเลขที่ไม่ใช้ในการคำนวณ เช่น หมายเลขบัตรประจำตัวประชาชน รหัสนักศึกษา เบอร์โทรศัพท์ บ้านเลขที่ และรหัสไปรษณีย์ เป็นต้น โดยสามารถบรรจุข้อมูลได้สูงสุดจานวน 255 ตัวอักขระ
          2) Memo ข้อความที่เป็นตัวอักขระที่มีความยาวมากๆ และมากกว่า 255 ตัวอักขระ แต่ไม่เกิน 65,535 ตัวอักษร ส่วนมากใช้ในการเก็บข้อมูลและรายละเอียดที่มีความยาวของข้อมูลมากๆ นั่นเอง
          3) Number ข้อมูลที่เป็นตัวเลข สามารถนำไปคานวณได้ เช่น จำนวนสินค้า และจำนวนหน่วยกิต เป็นต้น
          4) Date/Time ข้อมูลที่เป็นวันที่และเวลา
     5) Currency ข้อมูลที่เป็นตัวเลข ใช้ในการคำานวณข้อมูลเกี่ยวกับการเงิน เช่น ราคาสินค้า ค่าหน่วยกิต เงินเดือน รายรับ และรายจ่าย เป็นต้น
          6) Auto Number เป็นตัวเลขจำนวนเต็มแบบลาดับที่ ซึ่งโปรแกรมจะกาหนดค่าให้โดยอัตโนมัติเมื่อมีการเพิ่มเรคอร์ดใหม่เข้ามาในตาราง
          7) Yes/No เป็นข้อมูลทางตรรกะ ซึ่งมีสถานะเป็นจริงหรือเท็จ เช่น True/False, Yes/No,หรือ On/Off และจะเป็นค่าว่างไม่ได้
          8) OLE Object ข้อมูลที่เป็นการเชื่อมโยงหรือนำเข้าข้อมูลจากโปรแกรมอื่นๆ มาเก็บไว้เช่น รูปภาพ ตาราง กราฟ และเสียง เป็นต้น OLE ย่อมาจาก Object Linking and Embedding เป็นเทคนิคของการประยุกต์ใช้งานบนวินโดว์ส ที่ใช้ในการแลกเปลี่ยนข้อมูลระหว่างกัน เช่นสามารถนำรูปภาพจากโปรแกรม PhotoShop มาใช้ใน Microsoft Word ได้ เป็นต้น
          9) Hyperlink เป็นข้อมูลหรือแอดเดรสที่ใช้อ้างอิงไปยังข้อมูลอื่นๆ หรือระบุการเชื่อมโยงในแบบของเว็บเพจ ซึ่งแสดงด้วย URL (Uniform Resource Locator) โดยการอ้างอิงไปยังแหล่งข้อมูลอื่น ซึ่ง อาจเป็นได้ทั้งไฟล์ฐานข้อมูลของโปรแกรมไมโครซอฟต์แอกเซสเอง หรือไฟล์ของโปรแกรมอื่นที่อยู่ในเครื่องเดียวกัน นอกจากนี้ ยังสามารถเชื่อมโยงไปยังเว็บไซต์บนอินเทอร์เน็ตได้
          10) Attachment เหมือนไฟล์แนบในอีเมล เป็นไฟล์ชนิดใดก็ได้ เช่น Word, Excel
          11) Calculated ผลของการคำนวณจาก field อื่นในตาราง Lookup Wizard … ที่แสดงในเมนู Data Type นัั้นไม่ใช่ชนิดข้อมูลแต่เป็นเครื่องมือช่วยป้อนข้อมูลและนาเข้าข้อมูลจาก Table อื่นๆ ของฐานข้อมูล

คุณสมบัติของ field
     คุณสมบัติของ field (Field Properties) เป็นส่วนที่ใช้กำหนดคุณสมบัติของแต่ละ field เช่น กำหนดขนาดของ field รูปแบบที่ใช้ในการป้อนข้อมูล รูปแบบการแสดงผลข้อมูล และกำหนดเงื่อนไขที่ใช้ตรวจสอบค่าใน field เป็นต้น
          - Field Size คือ ขนาดของ field หรือความยาวของข้อมูลที่สามารถป้อนเข้าไปได้ เช่น รหัสไปรษณีย์ จะมีความยาว 5 อักขระ ค่า default ของ Field Size คือ 255 อักขระ ดังนั้น ถ้าเรากำหนดให้เล็กลงได้ ก็จะช่วยลดการเก็บพื้นที่ข้อมูล
          - Format ใช้ในการกำหนดรูปแบบในการแสดงข้อมูลที่หน้าจอ แต่ไม่ได้เปลี่ยนข้อมูลจริง เช่น
ตารางที่ 3.1 ตัวอย่างรูปแบบในการแสดงข้อมูล

          - Decimal Place ใช้กาหนดว่าจะให้แสดงจุดทศนิยมกี่ตำแหน่ง ซึ่งจะใช้ได้กับข้อมูลชนิด Number และ Currency เท่านั้น
          - Input Mask ใช้กาหนดรูปแบบในการป้อนข้อมูล เพื่อความสะดวกรวดเร็ว เช่นหมายเลขโทรศัพท์ และหมายเลขบัตรประชาชน เป็นต้น
          - Caption ใช้กำหนดข้อความที่แสดงในส่วนหัวคอลัมน์ใน Datasheet View หรือเป็นชื่อที่จะปรากฏใน Form หรือ Report
          - Default Value ใช้กำหนดค่าเริ่มต้นของข้อมูลใน field พิมพ์ใหม่ได้ แต่ถ้าไม่พิมพ์ใหม่ก็จะมีค่าเป็น Default Value
          - Validation Rule ใช้กำหนดเงื่อนไขสาหรับค่าของข้อมูล เช่น ใน field นี้จะต้องป้อนข้อมูลเพียง 2 ค่า คือ หญิง หรือ ชาย เท่านั้น ถ้าป้อนนอกเหนือจากนี้แล้ว จะแสดงกรอบหน้าต่างเตือน และไม่สามารถป้อนนอกเหนือจากที่กาหนดไว้ได้ เช่น

ตารางที่ 3.2 ตัวอย่างการกำหนดเงื่อนไขสำหรับค่าของข้อมูล

          - Required ถ้าเลือก Yes จะต้องป้อนข้อมูลลงไปใน field เสมอ ปล่อยว่างไว้ไม่ได้
          - Allow Zero Length ถ้าจะให้ field แบบ Text หรือ Memo รับข้อมูลที่เป็นค่าว่าง
(Null) หรือข้อความที่มีความยาวเป็นศูนย์ เช่น “” (ไม่มีช่องว่างในเครื่องหมายคาพูด) ให้ตัง้ ค่าเป็นYes
          - Indexed จะให้ field นั้นป็นดัชนีหรือไม่ No (ไม่เป็นดัชนี), Yes (DuplicatesOK) (เป็นดัชนีที่มีค่าซ้ำกันได้), Yes (No Duplicates) (เป็นดัชนีที่มีค่าซ้ำกันไม่ได้)
          - Unicode Compression ใช้กับข้อมูล Text, Memo, และ Hyperlink เพื่อบีบอัดข้อมูลที่ใช้รหัสแบบ Unicode (Unicode จะใช้ 2 ไบต์แทนอักขระ 1 ตัว ทาให้ใช้พื้นที่เก็บข้อมูลมากกว่าปกติ) ค่าเริ่มต้นของคุณสมบัตินี้เป็น Yes เพื่อให้อักขระทุกตัวที่ไบต์แรกมีค่าเป็น 0 เช่นภาษาอังกฤษ, สเปน, เยอรมัน ถูกบีบอัดบนอุปกรณ์เก็บข้อมูล และคลายออกเมื่อนำไปใช้ การบีบอัดจะไม่เกิดขึ้นถ้าขนาดข้อมูล Memo น้อยกว่า 4,096 ไบต์ หรือบีบอัดแล้วไม่ทำให้ขนาดข้อมูลเล็กลง
          - IME Mode และ IME Sentence Mode ใช้กับข้อมูล Text, Memo, Date/Timeและ Hyperlink พบคุณสมบัตินี้ใน Control Text Box, Combo Box และ List Box ในมุมมอง Design ของ Form ด้วย ใช้ในกรณีติดตั้งโปรแกรม Input Mode Editors (IME) เพื่อเปลี่ยน layout ของคีย์บอร์ดให้สามารถคีย์ตัวอักษรในภาษาแถบเอเซียตะวันออก เช่น จีน ญี่ปุ่น และเกาหลี เป็นต้น
          - Smart Tags ช่วยในการทำงานระหว่างฐานข้อมูล Access กับโปรแกรมภายนอกสะดวกขึ้น เช่น การเรียกใช้โปรแกรมรับ-ส่งอีเมล การนัดหมาย การติดต่อกับบุคคล เมื่อผู้ใช้คลิก field ข้อมูลที่จะติดต่อกับโปรแกรมภายนอกจะมีไอคอน Smart Tags ที่มุมล่างของ fieldให้เลือการทำงานได้จากเมนู
          - Text Format ใช้กับข้อมูลแบบ Memo ถ้าตั่งค่าเป็น Plain Text หมายถึงแสดงข้อความโดยไม่ต้องจัดรูปแบบ ส่วน Rich Text หมายถึงแสดงข้อความแบบจัดรูปแบบ เช่นตัวหนา ตัวเอน ย่อหน้า เป็นต้น
          - Text Align ใช้กับข้อมูลทุกชนิดยกเว้น Attachment ทาหน้าจัดตาแหน่งข้อมูลเช่น ชิดซ้าย ชิดขวา เป็นต้น
          - Show Date Picker ใช้กับข้อมูล Date/Time เท่านัน้ มี 2 ทางเลือก คือ ForDates หมายถึงให้แสดงปฏิทินเล็กๆ เพื่อเลือกวัน/เดือน/ปี จากปฏิทินโดยไม่ต้องคีย์เอง และNever หมายถึงไม่ต้องแสดงปฏิทิน ผู้ใช้จะคีย์วัน/เดือน/ปี ลงไปเอง

การกาหนดคีย์หลัก (Primary Key)
     - คีย์หลัก หรือ Primary Key คือ field ที่มีข้อมูลใน record ที่ไม่ซ้ำกัน เพื่อเป็นตัวกำหนดให้ทุก record ต่างกัน
     - ประโยชน์ คือ เมื่อมีการป้อนข้อมูลใน field ที่กำหนดเป็น Primary Key ซ้ำกันแล้ว ก็จะเกิดคำเตือนขึ้นและให้ป้อนข้อมูลใหม่
     - Primary Key จะเป็น field ที่ไม่ว่าง จะต้องมีค่าอยู่เสมอ ตัวอย่าง เลขบัตรประจาตัวประชาชน และรหัสผู้ป่วย เป็นต้น

การเพิ่มข้อมูลในตาราง (เรคคอร์ด)
     การเพิ่มข้อมูลในตาราง สามารถทำได้หลายวิธี ดังต่อไปนี้

การลบข้อมูลในตาราง
     1. เลือก record ที่ต้องการจะลบ
     2. การลบข้อมูลในตาราง สามารถทำได้หลายวิธี ดังต่อไปนี้

การทำงานกับ Record Navigator

การจัดรูปแบบข้อมูลในตาราง

การเรียงลeดับข้อมูล (Sort)
     การเรียงลำดับข้อมูล ทำได้สองทางดังนี้

การกรองข้อมูลใน field
     หลังจากคลิก OK แล้ว จะเหลือแต่เรคอร์ดท่ไี ม่มีคา ว่า ชาย

การกรองข้อมูลแบบเลือกรายการ
     1. คลิกขวาในช่องข้อมูลช่องใดก็ได้ของคอลัมน์ที่ต้องการกรอง

     2. เลือก Text Filters

ตัวอย่างการกรองข้อมูลแบบเลือกรายการ
     1. เลือก Does Not Begin With
     2. เติม นาย แล้วคลิก OK

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

การกeหนดรายละเอียดในการค้นหา
     - ช่อง Find What พิมพ์คeที่ต้องการค้นหา
     - ช่อง Look In เลือกแหล่งค้นหา (Current Document, Current Field)
     - ช่อง Match กeหนดความสัมพันธ์ของข้อมูลที่ต้องการค้นหา
          o Any Part of Field ข้อมูลที่ค้นเป็นส่วนหนึ่งของ field
          o Whole Field ข้อมูลที่ค้นเป็นทัh' หมดของ field
          o Start Field ข้อมูลที่ค้นเป็นค่าเริ่มต้นของ field
     - ช่อง Search กาหนดทิศทางการค้นหา (All, Up, Down)
     - ที่ Match Case กาหนดให้หาตรงตามที่พิมพ์เข้าไปเท่านั้น เช่น ถ้าหา MISS จะไม่เจอ record ที่เขียนว่า Miss

การค้นหาแบบเร็ว

การคานวณข้อมูลในตาราง

การสร้างความสัมพันธ์ (Relationship)
     การสร้างฐานข้อมูลดีนัho ส่วนมากจะมีมากกว่า 1 ตาราง เพราะในแต่ละงานที่เราต้องการเก็บข้อมูล ก็มักมีส่วนประกอบมากกว่า 1 ส่วน เช่น ข้อมูลโกดังเก็บสินค้า อาจจะมีข้อมูลส่วนของลูกค้า ส่วนของออเดอร์ ส่วนของสินค้า ซึ่งอาจแยกไปเป็นสินค้าขายส่ง ขายปลีก สินค้าลดราคาเป็นต้น ซึ่งผู้สร้างฐานข้อมูลต้องคิดให้รอบคอบตั้งแต่แรก ว่าในงานที่ต้องการเก็บข้อมูลนี้ มีข้อมูลที่แบ่งเป็นชนิดต่างๆ อะไรได้บ้าง โดยยึดว่าต้องแบ่งอย่างมีเอกภาพ ส่วนเดียวกันต้องมีเนื้อหาเป็นเรื่องเดียวกัน ในการสร้างฐานข้อมูล ข้อมูลแต่ละส่วน จะมีตารางเป็นของตัวเอง
ตัวอย่างความสัมพันธ์
     - ลูกค้า: ชื่อ, นามสกุล, ที่อยู่, เบอร์โทรศัพท์, รหัสลูกค้า
     - สินค้า: รหัสสินค้า, ชนิด, ราคา, จำนวนคงคลัง
     - ออเดอร์ลูกค้า: เบอร์ออเดอร์, รหัสลูกค้า, รหัสสินค้า, จำนวนสินค้า, วันที่สั่ง , สถานะ
     - ลูกค้าพิเศษ: รหัสลูกค้า, ระยะเวลาที่เป็นลูกค้ามา, ราคาที่ซื้อ เฉลี่ยต่อเดือน, วันเกิด

ตัวอย่างการสร้างความสัมพันธ์ของตาราง
     1. คลิกแท็บ Database Tools และคลิกปุ่ม Relationships


     2. ใช้ Mouse ลากให้เกิดความสัมพันธ์ระหว่าง CustomerID ในตาราง Customer และ CustomerOrder
     3. จะมีหน้าจอขึน้ มาถาม โดย Access จะกeหนดชนิดความสัมพันธ์ให้โดยอัตโนมัติ
     4. ให้เลือก Enforce Referential Integrity, Cascade Update Related Fields, และCascade Delete Related Fields เพื่อที่ว่า เมื่อใดก็ตามที่ record มีการเปลี่ยนแปลงที่ตารางใดตารางหนึ่ง ก็ให้ update กับตารางอื่นที่มีความสัมพันธ์ด้วย