การสร้างระบบฐานข้อมูลบน Pocket PC ด้วย SprintDB ตอนที่ 2

14-10-03 เวลา 00:34
มาแล้วครับ ภาคต่อของการสร้างระบบฐานข้อมูลในเครื่อง Pocket PC ใครที่ติดตามตอนแรกมาแล้ว ยังไม่ได้กลับไปอ่านรอบสองผมขอแนะนำให้กลับไปอ่านอีกรอบนะครับ เพราะว่าผมได้เพิ่มเติมข้อมูลลงไปอีกเล็กน้อยครับ ไม่มีอะไรมากแค่เปลี่ยนข้อมูลสินค้าให้เป็นภาษาไทยเพื่อเป็นการแสดงการใช้งานโปรแกรมนี้ร่วมกับภาษาไทยให้เห็นกันชัดๆ ไปเลยครับ

จากตอนที่แล้วเราได้ศึกษาการสร้างตารางและลองบันทึกข้อมูลกันไปแล้ว ซึ่งนั่นเป็นพื้นฐานของการออกแบบระบบฐานข้อมูล แต่ต่อไปนี้เราจะพัฒนาไปอีกขั้นด้วยการสร้างฟอร์มเพื่อช่วยทำให้การบันทึกข้อมูลเป็นไปได้อย่างรวดเร็วยิ่งขึ้นครับ ทั้งนี้ระบบที่ใช้ฟอร์มจะเหมาะกับงานที่ต้องมีการบันทึกข้อมูลชุดเดิมซ้ำๆ เป็นประจำ ซึ่งนั่นทำให้มันเหมาะกับการนำมาใช้กับการบันทึกการซื้อ + การขายในแต่ละวัน เพราะต้องเลือกชื่อสินค้าและชื่อลูกค้าซึ่งเป็นข้อมูลชุดเดิมๆ แทบทุกวันครับ

สร้างตารางเก็บข้อมูลลูกค้า

ก่อนจะไปถึงจุดนั้นผมขอให้ท่านใช้ความรู้จากตอนที่แล้วสร้างตารางเก็บข้อมูลของลูกค้าโดยใช้รายละเอียดดังต่อไปนี้ครับ

ซึ่งถ้าทำถูกต้องท่านจะได้ตารางเก็บข้อมูลลูกค้าดังรูปครับ

การสร้างตารางเก็บข้อมูลการซื้อ

ต่อไปจะเป็นการสร้างตารางเพื่อเก็บข้อมูลการซื้อสินค้ามาไว้ในร้าน ( หรือถ้าเป็นกรณีของโรงงานก็เป็นการบันทึกปริมาณสินค้าที่ผลิตเพิ่ม ) ให้ท่านใช้ความรู้จากตอนที่ 1 ในการสร้างตารางซึ่งมีข้อมูลดังต่อไปนี้ครับ

ซึ่งถ้าหากทำได้ถูกต้องจะได้หน้าต่างโปรแกรมดังรูปครับ

เสร็จแล้วให้ท่านคลิกที่ปุ่ม OK เพื่อบันทึกข้อมูลลงในตาราง Trans-buy ครับ

ต่อไปเราจะมาสร้างฟอร์มสำหรับรับข้อมูลเพื่อบันทึกลงในตาราง Trans-buy กันนะครับ

การสร้าง Form สำหรับบันทึกการซื้อลงในตาราง trans-buy

ให้ท่านคลิกที่แทป FORM จากนั้นคลิกที่ปุ่ม NEW (หมายเลข 1) เสร็จแล้วเลือกตารางที่จะผูกกับฟอร์มที่สร้างขึ้นมาให้เป็น trans-buy (หมายเลข 2) จากนั้นจึงคลิกที่ปุ่ม OK ครับ (หมายเลข 3)

เมื่อท่านเข้ามาสู่หน้าต่างสำหรับสร้าง FORM จะเป็นหน้าต่างโล่งๆ ที่มีเมนูอยู่ด้านล่าง จากนี้ท่านจะสร้างฟอร์มโดยใช้ข้อมูลดังตารางด้านล่างนี้ครับ

จากรูปให้ท่านคลิกที่เมนู Control แล้วคลิกเลือกชนิดของ Control ที่ท่านต้องการ ในที่นี้เราจะสร้าง Control "EditBox" ก่อนเพื่อใช้แสดงค่า ID ครับ จากนั้นให้ท่านคลิกที่พื้นที่ว่างๆ บนหน้าจอ 1 ครั้ง เพื่อวาง EditBox ( ท่านยังสามารถคลิกแล้วลากเพื่อจัดตำแหน่งได้ตามต้องการ )

ในขั้นตอนนี้ท่านอาจจะคลิกพื้นที่ว่างๆ บนหน้าจอเพื่อกลับไปเลือกสร้าง Control อื่นๆ เพิ่มเติมแต่เราจะทำการแก้ไข Control ที่เพิ่งสร้างเสียก่อน ให้ท่านคลิกที่ Control ที่กำลังสร้าง 1 ครั้งแล้ว คลิกที่เมนู Properties เพื่อกำหนดค่าสำหรับ Control ที่เพิ่งสร้างขึ้น

จากรูปในช่อง Name ให้ป้อนคำว่า idf ซึ่งค่านี้จำเป็นต้องใช้ในการอ้างอิงภายหลังด้วย ดังนั้นให้ระมัดระวังการสะกดด้วยครับ เสร็จแล้วให้ท่านคลิกที่แทป Data ด้านบนครับ

จากรูปทางซ้าย ครั้งแรกในช่อง ControlSource จะเป็นช่องว่างๆ อยู่ให้ท่านป้อนคำว่า "[trans-buy].id" ลงไปในช่องว่าง ส่วนนี้เพื่อกำหนดให้ Control EditBox ที่สร้างขึ้นผูกอยู่กับฟิลด์ id ของตาราง trans-buy นั้นเองครับ

( หรือถ้าจะไม่กรอกค่าลงไป ก็ให้ท่านคลิกที่ปุ่ม [...] แล้วจะเข้าสู่หน้าจอทางด้านขวา จากนั้นให้คลิกเลือกชื่อ Table เป็น trans-buy (ตำแหน่งที่ 1 ) และคลิกเลือก Field เป็น id (ตำแหน่งที่ 2) ก็จะปรากฏคำว่า [trans-buy].id ในตำแหน่งที่ 3 ครับ เสร็จแล้วคลิกปุ่ม OK ด้านบนก็จะปรากฏคำว่า [trans-buy].id ในช่อง Control Source เช่นกันครับ

เสร็จแล้วให้คลิกที่ปุ่ม OK ด้านบนเพื่อกลับสู่หน้าจอสร้าง Control เช่นเดิมครับ

จากนั้นเราจะสร้าง ป้ายชื่อ (Label) กันครับให้ท่านคลิกพื้นที่ว่างบนหน้าจอ 1 ครั้ง แล้วเลือกเมนู Control / Label จากนั้นคลิกพื้นที่ว่างบนหน้าจอแล้วลาก Label ที่สร้างขึ้นมาไปไว้ด้านหน้าของ Edit Box ครับ

จากรูปเราจะกำหนด Properties ของ Label ที่สร้างใหม่โดยคลิกตามหมายเลข 1 - 2 - 3 ครับ

จากรูปในช่อง Caption ให้ป้อนคำว่า "ลำดับ" ครับ เสร็จแล้วคลิกที่ปุ่ม OK ด้านบนนะครับ

จากนั้นเราจะมาสร้าง Control สำหรับแสดงวันที่กันครับ โดยการคลิกที่พื้นที่ว่างๆ บนหน้าจอแล้วเลือกเมนู Control/Edit Box ครับ จากนั้นให้คลิกพื้นที่บนหน้าจอเพื่อจัดวาง EditBox อันใหม่ดังรูป

(จากรูปแสดงการลากเพื่อจัดวาง Control ให้อยู่ในตำแหน่งที่ต้องการ)

ให้ท่านคลิกที่ Control EditBox ที่เพิ่งสร้างขึ้นใหม่แล้วคลิกที่เมนู Properties ครับ

จากรูปในช่อง Name ให้ป้อนคำว่า datef ครับ เสร็จแล้วเลื่อน scholl bar ลงมาด้านล่างดังรูป

ในช่อง DateTimePicker ให้เลือกตัวเลือก Date ครับ เพื่อทำให้ EditBox ที่สร้างขึ้นกลายสภาพเป็น Date Picker จะได้สะดวกเวลาป้อนวันที่ครับ

เสร็จแล้วให้ท่านคลิกที่แทป Data ครับ

จากรูปในช่อง ControlSource ให้ป้อนคำว่า [trans-buy].date ( วิธีการป้อนด้วย Wizard ให้ดูจาก Control "idf" ครับ ) เสร็จแล้วให้ท่านคลิกที่หัวข้อ DefaultValue แล้วคลิกที่ปุ่ม [...] ครับ

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

เสร็จแล้วคลิกที่ปุ่ม OK เพื่อกลับไปยังหน้าจอ Properties ของ Control Datef ครับ

จากรูปจะเห็นว่ามีคำสั่ง SysDate() ปรากฏอยู่ในช่อง DefaultValue ครับ ( ความจริงแล้วถ้าเราแม่นในเรื่องฟังก์ชั่นเหล่านี้ก็สามารถป้อนลงไปตรงช่องนี้เลยก็ได้ครับ )

เสร็จแล้วให้ท่านคลิกที่ปุ่ม OK เพื่อกลับสู่หน้าจอการสร้าง Control ครับ

ต่อไปให้ท่านสร้าง Control Label อันใหม่วางไว้ตรงหน้า Control Datef ให้มี Caption ชื่อว่า "วันที่" ครับ ( วิธีการดูจาก Label "ลำดับ" ครับ

เสร็จแล้วให้ท่านสร้าง Control ใหม่เป็น DropDownBox ครับ

จากรูปท่านสามารถลากที่มุมขวาล่างของ Control เพื่อปรับขนาดให้ใหญ่ขึ้นเพื่อให้สะดวกเวลาเลือกรายการสินค้าครับ

จากนั้นให้ท่านคลิกที่เมนู Properties แล้วกำหนดให้ช่อง Name มีชื่อเป็น Productf ครับ ( ดูตัวอย่างจากการกำหนดชื่อให้คอนโทรล Datef ครับ ) เสร็จแล้วให้ท่านคลิกที่แทป Data ดังรูป

จากรูปให้กำหนด Control Source เป็น [trans-buy].product แล้วคลิกที่ RowSource และคลิกที่ปุ่ม [...] เพื่อกำหนดชุดคำสั่ง SQL ในการดึงข้อมูลจากตาราง Product มาแสดงใน Control "Productf"

จากรูปด้านซ้ายให้คลิกที่แทป SQL เพื่อป้อนคำสั่ง SQL ครับ

จากรูปด้านขวาท่านสามารถป้อนชุดคำสั่ง SQL ลงในช่องด้านบนทันทีด้วยคำสั่ง "SELECT description FROM product" ครับ หรือจะใช้การเลือกจาก dropdown ด้านล่างก็ได้ครับ ( ด้วยคำสั่งดังกล่าวจะทำให้ Control "Productf" แสดงฟิลด์ description จากตาราง trans-buy ครับ ) เมื่อป้อนค่าทั้งหมดลงไปแล้วจะได้หน้าต่างโปรแกรมดังรูปครับ

เสร็จแล้วคลิกที่ปุ่ม OK เพื่อกลับไปยังหน้าต่างโปรแกรมเพื่อสร้าง Control อื่นๆ ต่อไปครับ

จากนั้นให้ท่านสร้าง Control Lacel ที่มี Caption เป็น "สินค้า" วางเอาไว้ด้านหน้าของ Control "Productf" ครับ

จากนั้นให้สร้าง Control EditBox สำหรับป้อนจำนวนสินค้า ให้ Name มีชื่อว่า "Qttf"

จากนั้นให้ท่านสร้าง Control Label ที่มี Caption เป็น "จำนวน" วางเอาไว้ด้านหน้าของ Control "Qttf" ครับ

จากนั้นให้สร้าง Control EditBox สำหรับป้อนหมายเหตุการผลิต ให้ Name มีชื่อว่า "Remarkf"

จากนั้นให้ท่านสร้าง Control Label ที่มี Caption เป็น "หมายเหตุ" วางเอาไว้ด้านหน้าของ Control "Remarkf" ครับ

เมื่อสร้างทุกอย่างแล้วจะได้หน้าต่าง FORM ดังรูปครับ

ให้ท่านคลิกที่ปุ่ม OK เพื่อบันทึกฟอร์มที่สร้างขึ้นครับ

คลิก Yes เพื่อบันทึกฟอร์มครับ

จากรูปให้ป้อนชื่อฟอร์มที่สร้างขึ้นว่า frmTrans-buy เสร็จแล้วคลิกที่ปุ่ม OK ครับ

เริ่มใช้งาน FORM

เมื่อกลับไปที่หน้าจอหลักของ FORM เลือก frmTrans-buy แล้วคลิกที่ปุ่ม Open ครับ จะได้หน้าต่างโปรแกรมดังรูปครับ

จากรูปให้ท่านคลิกที่ปุ่ม new record แล้วจะสังเกตุเห็นว่ามีรายการ id และ date ปรากฏขึ้นมาโดยอัตโนมัติ

( การที่ id เพิ่มอัตโนมัติก็เนื่องมาจากการกำหนดให้เป็น index+autoincremental ตั้งแต่ตอนที่สร้าง field ใน table trans-buy ครับ และการที่ date ปรากฏโดยอัตโนมัตินั้นก็เนื่องมาจากการกำหนดให้ DefaultValue = SYSDATE() ครับ )

ให้ท่านลองคลิกที่ dropdown Product จะเห็นว่ามีรายการสินค้าให้เลือกปรากฏอยู่ดังรูปครับ

เมื่อเลือกรายการเสร็จแล้วท่านก็สามารถป้อนจำนวนสินค้าและหมายเหตุ การซื้อดังรูป

ท่านยังสามารถคลิกที่ปุ่ม new record เพื่อป้อนข้อมูลใน record ถัดไปได้อีก หรือคลิกที่ปุ่ม OK ด้านบนเพื่อบันทึกค่าที่ป้อนลงไปในตารางครับ

เมื่อท่านคลิกที่แทป TABLE และคลิกที่ตารางชื่อ trans-buy เพื่อเปิดตารางขึ้นมาดูก็จะพบว่าข้อมูลลงไปอยู่ในตารางเรียบร้อยแล้วดังรูปครับ

การสร้างตาราง trans-sale เพื่อบันทึกการขาย

ให้ท่านสร้างตารางเพื่อบันทึกการขายโดยใช้ข้อมูลจากตารางด้านล่างนี้ครับ

ตารางชื่อ trans-sale

วิธีการให้ดูจากการสร้างตาราง trans-buy ครับ

การสร้าง FORM เพื่อบันทึกการขายลงในตาราง trans-sale

หลักๆ แล้วก็จะใช้วิธีเดียวกับการสร้างฟอร์มเพื่อบันทึกการซื้อที่ผ่านมาแล้วครับ แต่จะมีเพิ่มขึ้นมาในส่วนของ Control "Customerf" เพื่อใช้เลือกชื่อลูกค้าจากตาราง Customer ซึ่งก็จะใช้วิธีการคล้ายกับการสร้าง Control "Prodictf" ครับ

ให้ท่านสร้างฟอร์มโดยใช้ข้อมูลจากตารางด้านล่างนี้ครับ

ให้ท่านสร้าง Control EditBox ที่มี Name เป็น "idf"

ให้ท่านสร้าง Control Label ที่มี Caption เป็น "ลำดับ"

ให้ท่านสร้าง Control EditBox ที่มี Name เป็น "Datef"

ให้ท่านสร้าง Control Label ที่มี Caption เป็น "วันที่"

ให้ท่านสร้าง Control Dropdown ที่มี Name เป็น "Productf"

ให้ท่านสร้าง Control Label ที่มี Caption เป็น "สินค้า"

ให้ท่านสร้าง Control EditBox ที่มี Name เป็น "Qtt"

ให้ท่านสร้าง Control Label ที่มี Caption เป็น "จำนวน"

ให้ท่านสร้าง Control Dropdown ที่มี Name เป็น "Customerf"

ให้ท่านสร้าง Control Label ที่มี Caption เป็น "ลูกค้า"

ให้ท่านสร้าง Control EditBox ที่มี Name เป็น "Remarkf"

ให้ท่านสร้าง Control Label ที่มี Caption เป็น "หมายเหตุ"

จากนั้นให้ท่านสร้าง Control Dropdown สำหรับเลือกชื่อลูกค้า ให้ Name มีชื่อว่า "Customerf" ด้วยวิธีการเดียวกับ Control "Productf" ครับ แต่ต่างกันที่ว่าชุดคำสั่ง SQL ให้ใช้คำสั่งว่า "SELECT description FROM customer" ผลจากคำสั่งนี้ Control "Customerf" จะแสดงรายการจากฟิลด์ description ในตาราง customer ครับ

จากนั้นให้ท่านสร้าง Control Label ที่มี Caption เป็น "ลูกค้า" วางเอาไว้ด้านหน้าของ Control "Customerf" ครับ

เมื่อท่านสร้าง Control ทั้งหมดเสร็จแล้วจะได้หน้าต่างโปรแกรมดังรูปครับ

ทำการบันทึกฟอร์มที่สร้างขึ้นมาในชื่อว่า frmTrans-sale ครับ

เสร็จแล้วให้ท่านคลิกที่ปุ่ม OK เพื่อบันทึกข้อมูลลงในฟอร์มที่สร้างขึ้นมาครับ

จากนั้นให้ท่านคลิก FORM frmTrans-sale แล้วคลิก Open เพื่อบันทึกข้อมูลดังรูปครับ

เมื่อกรอกข้อมูลเสร็จแล้วให้ท่านคลิกที่ปุ่ม OK ครับ

จากนั้นลองเปิดดูตาราง trans-sale โดยการคลิกที่แทป TABLE เลือกตาราง trans-sale แล้วคลิกปุ่ม Open ก็จะเห็นว่าข้อมูลลงไปอยู่ในตารางแล้วดังรูป

ก็จบลงแล้วนะครับสำหรับบทความในตอนที่สอง หวังว่าท่านที่ติดตามบทความของผมมาทั้งสองตอนคงจะสามารถนำไปปรับใช้กับงานของท่านได้นะครับ แต่บทความนี้ยังไม่สมบูรณ์เพราะยังขาดในส่วนของการตัดยอดสินค้าออกจากสต๊อก ซึ่งในบทความตอนที่ 3 ผมจะมาแนะนำให้ท่านหาจำนวนคงเหลือของสินค้าด้วยเครื่อง Pocket PC เพื่อให้ตรงกับจุดประสงค์ของบทความที่ต้องการให้สามารถใช้ Pocket PC ในการทำสต๊อกสินค้าเบ็ดเสร็จในเครื่องเดียวครับ และในบทความตอนที่ 4 จะนำระบบงานที่สร้างขึ้นไปเชื่อมโยงกับระบบงานในโปรแกรม Microsoft Access บนเครื่องพีซีครับ


o present by neko [ [email protected] ]
จำนวนผู้เข้าชม
Hosted by www.Geocities.ws

1