20100524

ต้องการคีย์เขต แล้วให้ขึ้นรหัสไปรษณีย์ ใน Form ของ Access

0 comments
สร้าง Form ที่อยู่นะคะ แล้วอยากคีย์เขต แล้ว รหัสไปรษณีย์ เด้งขึ้นมาเลย ต้องทำอย่างไรคะ ตอนนี้มีข้อมูล เขต กับ รหัสไปรษณีย์ แล้วอ่ะค่ะ รบกวนผู้รู้ตอบนู๋หน่อยนะคะ จะเป็นพระคุณยิ่งเจ้าค่ะ 
==============================================================

ต่อให้หน่อยครับ ผมคิดว่าคงจะไม่เข้าใจกันครับ
1. table จะมี 2 table เป็นอย่างน้อย  คือ table ที่เก็บข้อมูลของ อำเภอ,จังหวัด,รหัส  สมมติชื่อ tbl_Amper กับ table ที่เก็บข้อมูลทั่วไปที่มี field อำเภอ ,จังหวัด กับ รหัสด้วย สมมติชื่อ tbl_records
2. สร้าง form ทั้ง 2 form ขึ้นมาโดยใช้ wizard ผมจะตั้งชื่อเป็น frm_Amper กับ frm_records นะครับ
3. ใน frm_records ตรง field ที่เป็น อำเภอ  ให้เปลี่ยนจะ text เป็น Combo box เพื่อเอาไว้ใช้เลือกครับ สมมติ combo box นี้ชื่อ C_Amper
4. คลิกขวาตรง combo box ที่ชื่อ C_Amper นี้ แล้วเลือก properties
5. จะสังเกตุตรง Row source type จะเป็น Table/Query ถัดลงมา 1 บรรทัดจะเป็น Row Source ให้คลกตรง .... ครับ แล้วมันจะถามว่าจะให้สร้าง Query มั้ย  ก็ตอบ yes ครับ
6. จากนั้น (ผมไม่แน่ใจว่าเคยสร้าง query กันมั้ย แต่ผมขออนุญาตอธิบายสำหรับคนไม่รู้นะครับ ) ให้คลิกขวาเลือก show table ขึ้นมา แล้วเลือก table ที่ชื่อ tbl_Amper ครับ แล้วให้เลือก field มา 3 field ครับคือ อำเภอ จังหวัดกับ รหัส แล้วปิด form ไปครับ
7. จากนั้นจะกลับมาที่ properties หน้าเดิม แล้วบรรทัดต่อมาจะเป็น Column count หมายถึงจะให้โชว์จำนวน coloumn กี่ column เวลาเราจะ List ขึ้นมา  ให้เราใส่ 3 ครับ
8. ถัดมาอีก 2 บรรทัดจะเป็น Column widths ครับ  ซึ่งเป็นการกำหนดความกว้างของ column (สามารถปรับได้ตามความเหมาะสมครับ )  โดยผมกำหนดเป็น 2cm;2.3cm;2cm ครับ  หมายถึง column ของชื่ออำเภอหรือเขตจะกว้าง 2 cm ครับ column ของจังหวัดจะกว้าง  2.3 cm และ column ของรหัสจะกว้าง  2 cm ครับ
9. ต่อไปเป็นช่วงสำคัญครับที่จะกำหนดให้เวลาเราเลือกอำเภอ หรือเขต แล้วให้โปรแกรมมันใส่ในช่องให้เลยครับ
10. ให้เลื่อนมาเลือกที่ event ที่ชื่อ After update ด้านล่างครับ แล้วคลิกตรง .... ครับ
11. ก็จะขึ้นหน้าเปล่าขึ้นมา แต่มี 2 บรรทัดให้เห็นแบบนี้ครับ
           ivate Sub Amper_AfterUpdate()
    Me![¨Ñ§ËÇÑ´] = Me![Amper].Column(1)
    Me![ÃËÑÊ] = Me![Amper].Column(2)
    Refresh
End Sub


===============================================

1. ก็สร้าง table อีก table นึงขึ้นมามี 2 field คือ เขต , รหัสไปรษณีย์
2. ใน form การบันทึกที่อยู่ ตรง field ที่เป็นเขต ให้ทำเป็น Combo box แล้วดึงข้อมูลมาจาก table ที่เก็บเขตกับรหัสไปรษณีย์
3. ใน event ของ Combo box ที่ชื่อ after update ให้ไปเขียน code คือ me![ชื่อ field เขตในฟอร์มที่บันทึก] = me![combo box name].column(1)
4. ใน propertie ของ field เขตในฟอร์มนี้ ให้เลือกที่ช่อง Limit to list ว่าเป็น Yes

ก็ น่าจะได้แล้วครับ ที่เหลือลองศึกษาเองครับ �BR>

Read more ►

20091207

ODBC ของ Window xp

0 comments
ถาม

คือผมอยากทราบว่า ODBC ใน Administrative Tool ของ Window Xp มีความสามารถอะไรบ้าง และสามารถน้ำมาใช้กับ File Ms Access ได้หรือไม่ มีการเชื่อมต่อกับเครื่องอื่นๆอย่างไร ขอบคุณมากครับ

===============================================================

ตอบ

ขอคุยสักแบบนะครับ เพราะว่าเรื่องนี้เป็นหนังเรื่องยาว เช่น ใช้งานในลักษณะ Client/Server คือ เป็นตัวกลางระหว่าง Front-end กับ Back-end ในกรณี Back-end เป็นฐานข้อมูลแบบอื่น (คือไม่ใช่ Access) มันจะแปลงคำสั่งจาก Access ให้อยู่ในรูป ODBC SQL ส่งให้ฐานข้อมูลนั้นนำไปประมวลผลต่อไป

ถ้าจะสรุปอย่างง่าย ก็คือ ODBC Driver Manager ที่ใช้ในการติดต่อฐานข้อมูลต่าง ๆ เช่น Oracle, SQL Server, Informix, DB/2 เป็นต้น ซึ่งมีค่า Default ที่เซ็ตไว้ให้ก็มี Microsoft Access ครับ

หากทดลองใช้งาน ADP ก็ลง Microsoft SQL Server Database ซะก่อน แล้วสร้างฐานข้อมูลแบบ Microsoft Access Project ดูซิครับ

สำหรับ Microsoft Access Project ก็คือ
แฟ้ม Access ที่เชื่อมต่อกับฐานข้อมูล Microsoft SQL Server และใช้ในการสร้างโปรแกรมประยุกต์แบบไคลเอ็นต์/เซิร์ฟเวอร์

ลองเปิด NorthwindCS ดูครับ แต่ต้องติดตั้ง SQL Server 2000 Desktop Engine ได้จากแผ่นติดตั้งอยู่ที่โฟลเดอร์ MSDE2000 ก่อนเปิด


Read more ►

ใช้ MS Access เป็น Front End ควรใช้อะไรเป็น Back End

0 comments
ขอความรู้นะครับ

ที่ทำงานใช้ MS Access เก็บข้อมูลกันครับ

มีการพัฒนาระบบ Front ของ Access ใหม่ โดยแยกข้อมูลไว้ใน Server โดยใช้ Access เป็น Front ผลปรากฎว่าข้อมูลที่เรียกผ่านระบบ network ช้ามากๆ ก็เลยแก้ปัญหาด้วยการปรับระบบเป็น ODBC โดยทดลองใช้ Mysql เป็น Database Server ได้ความเร็วเป็นที่น่าประทับใจ

การติดตั้ง Mysql ใช้ Mysql 5.0.51b
ตัว Convert จาก MsAccess ไป Mysql ผมใช้ BullZip ครับ

ตอนนี้ฐานข้อมูลที่ทดลองใช้มีสองฐานข้อมูลด้วยกัน
ฐานข้อมูลแรกที่ Convert BullZip ฟ้องนะครับว่ามีข้อผิดพลาด ก็ทำการแก้ไขผ่านไปด้วยดี
( ปัญหาที่เกิดคือกำหนดค่าของ Field ผิด คือ เดิมกำหนดเป็น Byte ซึ่งที่ถูกต้อง ต้องกำหนดเป็น Int)

อีกฐานข้อมูลก็มี Error นะครับ ปัญหาคือ ได้มีการเขียนชุดคำสั่งว่า 'พอผู้ใช้กดปุ่ม SaveRecord ประมาณว่าให้copyข้อมูลเอาไว้ก่อนเพื่อนำไปสร้าง Record ใหม่ โดยผู้ใช้ไม่ต้องพิมพ์ข้อมูลชุดเดิมทั้งชุด (ตามภาพที่1)
พอผู้ใช้กดปุ่ม Duplicate ข้อมูลที่เรียกมานั้นก็นำไปสร้างเป็น record ใหม่ทันที

ผลปรากฎว่าข้อมูลในช่อง Field ต่างๆกลายเป็น #DELETE ตามภาพที่2 อันนี้ก็งงกันซิครับว่าปัญหาเกิดจากอะไรกันแน่

เพราะเหตุการณ์นี้ไม่เกิด ถ้าใช้ MS Access โดยตรง

ตอนนี้ก็เลยสับสนว่า มันผิดที่ตรงไหน จะหาทางแก้ยังไงดี

แล้วถ้าจะมีการปรับระบบฐานข้อมูล BackEnd ควรจะเป็นอะไรดี โดยที่ Front เป็น Access เพราะผู้พัฒนาระบบถนัดที่จะใช้ MS Access กันครับ

อีกเรื่องหนึ่งที่เป็นที่ถกเถียงกันว่า ระบบ Network มีผลต่อการ Link ข้อมูลของ Ms Access มากน้อยแค่ไหน หมายถึง Sprit ข้อมูลเอาไปไว้ใน Server

ความช้าของ Access ขึ้นอยู่กับอะไร

Record ที่ไม่มาก แต่การเขียน Form ที่ซับซ้อนจะส่งผลต่อการเรียกข้อมูลหรือไม่

ผมเองไม่มีความรู้เรื่อง Access มากเท่าไหร่นัก แต่พอจะมีความรู้เรื่อง Mysql และ PHP อยู่บ้างคงต้องขอความรู้จากท่านทั้งหลายครับ

ขอบคุณครับ


Read more ►

การใช้ mysql เป็น backend แล้วใช้ Ms access เป็น frontend ได้หรือเปล่าครับ

0 comments
ถาม

คือผมเขียนโปรแกรมโดยใช้ ms access อยู่ครับ ก็ใช้มาหลายปีแล้ว ตอนนี้ที่ทำอยู่จะแยกเป็น 2 files ครับ คือ file ฐานข้อมูล กับ file ที่เป็นโปรแกรม โดยการใช้ Link ฐานข้อมูล แต่ตอนนี้ข้อมูลเริ่มมากขึ้น จำนวนคนใช้งานเริ่มมากขึ้น ทำให้ประสิทธิภาพในการทำงานช้าลง ผมพอทราบมาว่า การเชื่อมกันระหว่าง mysql กับ msaccess สามารถทำได้โดยผ่าน ODBC แต่ไม่ทราบว่าต้องทำอย่างไรครับ ผมกำลังศึกษาอยู่ครับ ถ้ามีปรมาจารย์ทางด้านนี้อยู่ก็ช่วยชี้แนะด้วยครับ หรือมีข้อแนะนำอย่างอื่นก็ได้นะครับ อีกอย่างผมใช้ msaccess ก็ชอบมันครับ ไม่อยากเปลี่ยนไปเขียนตัวอื่นครับ

================================================
ตอบ

คิดว่า คุณคงชำนาญ Access มากที่เดียว จึงขอเชิญชวนมาช่วยกันตอบปัญหา วันใดช่วงใดว่างก็เข้ามาดูสักหน่อยเผื่อว่าจะตอบได้ ถ้าตอบได้ก็ตอบไป ถ้าตอบไม่ได้ก็มีคนอื่น ๆ ช่วยกัน ผมคิดว่ามันเป็นงานน่าภาคภูมิใจ ทำให้มีความสุขกับการได้บำเพ็ญประโยชน์

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

สรุปว่า
จะใช้ Access เป็น Front-End
จะใช้ MySQL เป็นฐานข้อมูล บอกไว้ตรงนี้เลยว่า MySQL มองโฟลเดอร์เป็นฐานข้อมูล และมองไฟล์เป็นตารางข้อมูล

โดย Access จะเป็นเพียง Application รับส่งข้อมูลผ่านไปให้ MySQL แล้ว MySQL ก็ส่งข้อมูลไปให้ Access ประมวลผล เมื่อเสร็จแล้ว Access ก็ส่งข้อมูลไปเก็บที่ MySQL

ตรงนี้เข้าใจ Access อีกนิดว่า Object ใน Access แบ่งเป็น 2 ส่วน คือ
1) ส่วนที่เป็นฐานข้อมูล ได้แก่ Table ทั้งหมด
2) ส่วน Object ที่เหลือ เป็น Application หรือ โปรแกรม นั่นเอง

เพราะฉะนั้นเมื่อ Access ไม่ได้เก็บข้อมูล ไฟล์ Access ที่เป็น Application จึงเป็นไฟล์เล็ก ๆ และในกรณีใช้แบบ MySQL เป็นฐานข้อมูลนี้ ตารางข้อมูลของ Access ก็จะเป็นตารางข้อมูลแบบ Link ตอน Link โปรดเลือกไฟล์ไทพ์เป็น ODBC Databases

สรุป(อีกแล้ว)ได้ว่า ความเข้าใจของคุณถูกต้องครับ

เพราะฉะนั้นงานของคุณก็คือ

1) ลง MySQL -DL จาก http://dev.mysql.com/downloads/

2) ลง MyODBC -DL จาก http://dev.mysql.com/downloads/


3) สร้าง Data Source เป็นการสร้างชื่อฐานข้อมูล (DSN)-อยู่ใน Administrative Tools ของ Control Panel -เลือก MySQL เป็น Driver - ตั้งชื่อฐานข้อมูล(DSN), ชื่อโฮสท์, MySQL Database Name,ID และ PW ดูผลสำเร็จที่ System DSN ว่ามีชือฐานข้อมูลที่คุณใส่หรือเปล่า ถ้ามีก็แสดงว่า OK


4) ส่งตารางทุกตารางของคุณจาก Access ด้วย Access เมนู Exportเลือก type ด้วย ไปไว้ในชื่อฐานข้อมูลตามข้อ 3


5) ทดลองใช้งาน

ขอบ้างได้ไหมครับ - ทดลองทำแล้วเขียนเป็นบทความเสนอในเว็บนี้เลยครับ... หนูขอร้อง.... ไม่ใช่แฟนทำแทนไม่ได้ฮ้า...

ร่วมด้วยช่วยกันครับ

Read more ►

Ms Access ช้ามาก

0 comments
เรื่องมีอยู่ว่าตอนนี้ใช้ acccess โดยการแยก back end แล้ววางไว้ทีเครื่อง server แล้วก็ แชร์ไฟล์ไว้ ส่วน front end ก็วางไว้ที่ server และ เครื่องอื่นๆแล้วก็ link table มาที่เครื่อง server พอใช้งานที่ server ก็ยังไหวอยู่ แต่พอใช้ที่เครื่องอื่นๆ จะช้ามาก ไม่รู้ว่าเกิดจากอะไร พอหาข้อมูลจากที่ต่างๆก็ไม่ค่อยเข้าใจเลยรบกวนผู้รู้ช่วยตอบด้วยครับ

1.การทำ upsizing ใน access จะช่วยได้ไหม ต้องทำยังไง ทำทั้ง back end ,front end หรือเปล่า (upsizing คือ mysql หรือเปล่า???)

2.ถ้าต้องแปลง back end เป็น mysql ต้องทำยังไงบ้าง ต้องใช้โปรแกรมอะไรบ้าง(เช่น mysql ,odbc) แปลงจากaccessต้องแก้ข้อมูลอะไรไหม หรือว่าใช้ได้เลย

3.ส่วนfront end(access) ต้องแก้อะไรไหม แล้วจะเชื่อมกับ back end (mysql) ยังไง

หากระทู้ที่ใกล้เคียงกันแล้วแต่ไม่ค่อยเข้าใจ

http://www.expert2you.com/view_question2.php?q_id=19726

http://www.expert2you.com/view_question2.php?q_id=22275

http://www.expert2you.com/view_question2.php?q_id=11711

รบกวนผู้รู้ช่วยตอบด้วยครับ

ถามเพิ่มเติมนิดนึงนะครับ

1.access project คืออะไร ทำยังไงถึงจะสร้างได้

2.mysql กับ sql server คืออันเดียวกันหรือเปล่า
Read more ►

20091020

Access Tutorial การออกแบบฐานข้อมูล

0 comments

การออกแบบฐานข้อมูล

Access เป็นโปรแกรม ฐานข้อมูลในชุด Microsoft Office ที่ใช้กันอย่างแพร่หลาย โดย Access ได้รับการพัฒนา เป็นฐานข้อมูลแบบฐานข้อมูลเชิงสัมพันธ์ (relational database) ในระดับคอมพิวเตอร์ตั้งโต๊ะ (desktop) มีสมรรถนะในระดับที่ดี การบำรุงรักษาทำได้ง่าย และสะดวก การเก็บข้อมูลของแต่ละ table จากการใช้งานจริง สามารถเก็บเรคคอร์ดได้อย่างน้อย 200,000 เรคคอร์ด ขนาดไฟล์ที่เก็บ ไม่น้อยกว่า 80 MB และสามารถทำงานในลักษณะ multi-users ได้จากประสบการณ์พบว่าสามารถทำงานได้ 5-7 ผู้ใช้พร้อมกัน ซึ่งไมโครซอฟต์ระบุว่า ขนาดการเก็บในแต่ละ table สามารถเก็บได้ 2 GB ภายใน Access มีอ๊อบเจคต่างๆ ที่ครอบคลุมการพัฒนา เป็นโปรแกรม โดยมีการติดต่อแบบ GUI (graphical user interface) ทำให้การพัฒนาทำได้สะดวก และใช้เวลาน้อย

ความเหมาะสมในการใช้ฐานข้อมูล

การเลือกใช้ Access หรือฐานข้อมูลระบบต่างๆ มีข้อควรพิจารณาที่สำคัญ คือ

  1. รูปแบบและขั้นตอนการทำงานมีความแน่นอน
  2. ปริมาณข้อมูลที่ต้องการจัดเก็บมีมาก
  3. ใช้ข้อมูลแบบร่วมกัน (shared data)

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

ฐานข้อมูล

ลักษณะ ของฐานข้อมูลเป็นการจัดเก็บแบบแถว-คอลัมน์ ในแนวแถวเป็นเก็บข้อมูลแต่ละข้อมูล รายละเอียดหรือฟิลด์จะเก็บในแนวคอลัมน์ ส่วนการอ้างอิงข้อมูลของ Access ใช้ชื่อฟิลด์


แนวคิดในการออกแบบฐานข้อมูล

จุด มุ่งหมาย และหน้าที่ของโปรแกรมคอมพิวเตอร์ คือ จัดขั้นตอน และกระบวนการประมวลผลจากข้อมูลเบื้องต้น (input) ให้ออกมาเป็นผลลัพธ์ (output)

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

อ๊อบเจคของ Access

อ๊อบเจคของ Access ประกอบด้วย

  • Table ทำหน้าที่ในการเก็บข้อมูล และเป็นแหล่งข้อมูล (Data source) ของอ๊อบเจคอื่น ได้แก่ คิวรี่ ฟอร์ม และรายงาน
  • คิวรี่ (Query) เป็นอ๊อบเจคที่สำคัญมาก นอกจากจะเป็นแหล่งข้อมูลให้กับฟอร์ม และรายงาน คิวรี่ มีชุดคำสั่งในการประมวลผล เช่น การเรียงลำดับ การหาผลรวม การคำนวณด้วยฟังก์ชัน การกำหนดเงื่อนไขคัดเลือกข้อมูล รวมถึงการแสดงผล โดยเรียกข้อมูลจากหลายๆ Table ที่สัมพันธ์กัน ออกมาเป็นกลุ่มข้อมูลเดียวกัน (Recordset)
  • ฟอร์ม (Form) เป็นอ๊อบเจคที่ทำหน้าที่เป็นส่วนติดต่อ กับผู้ใช้ผ่านจอภาพ ทำหน้าที่ได้ทั้งการป้อนข้อมูล และแสดงผล โดยเฉพาะการป้อนข้อมูล จะทำหน้าที่ได้ดีกว่า Table และคิวรี่ เพราะมีเครื่องมือต่างๆ อำนวยความสะดวก ในการป้อนข้อมูล และการควบคุมความถูกต้องของค่า
  • รายงาน (Report) เป็นการแสดงผลลัพธ์ที่ได้ทำการประมวลแล้วออกมาทางเครื่องพิมพ์
  • มาโคร (Macro) เป็นชุดคำสั่งแบบสำเร็จรูป เพื่อจัดการและบริหารอ๊อบเจคของ Access เป็นส่วนที่ทำให้มีความสะดวกกับผู้พัฒนาโปรแกรม ในการสร้างชุดคำสั่งอย่างมาก
  • โมดูล (Module) เป็นส่วนที่ให้ผู้พัฒนาโปรแกรม เขียนชุดคำสั่งได้เอง ด้วยภาษา Visual Basic เพื่อใช้ เป็นคำสั่งควบคุม การคำนวณ และฟังก์ชันในการคำนวณ
  • เพจ (Access data page) เป็นอ๊อบเจคที่ทำหน้าที่เป็น ส่วนติดต่อกับผู้ใช้ในแบบ Home page เพื่อใช้งานกับเว็บ ซึ่งมีลักษณะคล้ายกับฟอร์ม

ใน การพัฒนาโปรแกรมจะต้องทำเครื่องมือต่างๆ ของ Access มาใช้ตั้งแต่การรับข้อมูล จนถึงการแสดงผล จากเครื่องมือที่มีทำให้ผังการทำงานสามารถกำหนดเป็นรูปธรรมมากขึ้นเป็น

ผัง ข้างบนได้แสดงความสัมพันธ์ของเครื่องมือต่างๆ ใน Access ที่นำมาประกอบขึ้นเป็นโปรแกรมฐานข้อมูล คือ มีส่วนติดต่อกับผู้ใช้ เครื่องมือในการประมวล และฐานข้อมูล


วิธีการออกแบบฐานข้อมูล

ข้อ คำนึงพื้นฐานในการออกแบบฐานข้อมูล คือ การนำข้อมูลเข้าไปจัดเก็บ ในตำแหน่งที่สามารถเรียกออกมาแสดงผลได้ตรงกับความต้องการ และมีประสิทธิภาพ ดังนั้น กระบวนการวิเคราะห์จะเริ่มการพิจารณา ดังนี้

  1. วิเคราะห์เป้าหมายของฐานข้อมูล เพื่อที่จะทราบว่าจะเก็บข้อมูลประเภทไหน วัตถุประสงค์ของการใช้งาน และต้องการประมวลผลอะไรบ้าง จะทำให้ทราบขอบเขตในการทำงาน และการรวบรวมข้อมูลให้สอดคล้อง กับการใช้งาน
  2. วิเคราะห์ความสัมพันธ์ของข้อมูล เพื่อจัดกลุ่มข้อมูลสำหรับการจัดเก็บ และพิจารณาความสัมพันธ์ ในด้านการประมวลผล เพื่อแสดงผลที่ต้องการได้ อย่างมีประสิทธิภาพ
  3. วิเคราะห์การจัดเก็บข้อมูล เมื่อทราบจุดมุ่งหมาย และ ความสัมพันธ์ของข้อมูลต่างๆแล้ว จึงนำมาจัดกลุ่มเพื่อกำหนด Table ที่ใช้ในการเก็บให้สอดคล้องกับการทำงาน และความสามารถของ Access
  4. วิเคราะห์รายละเอียดของข้อมูล เพื่อทำให้ฐานข้อมูล มีสารสนเทศที่เพียงพอกับวิเคราะห์ และการใช้งานในแต่ละ Table ควรจัดเก็บรายละเอียดต่างๆ ให้ครบถ้วน
  5. วิเคราะห์การไหลของข้อมูล เพื่อทำให้สามารถออกแบบขั้นตอนการทำงาน ของโปรแกรมให้สอดคล้อง กับลักษณะการทำงาน มีความสะดวก และป้องกันความผิดพลาด หรือการรวบรวมสารสนเทศไม่ครบ

การกำหนด Table ตามคุณลักษณะของข้อมูล

จาก การที่ Access เป็นโปรแกรมฐานข้อมูลที่ออกแบบในลักษณะ Relational Database ดังนั้น วิธีการ ออกแบบต้องคำนึงถึงคุณสมบัติของ Table ในการใช้งานประกอบด้วย จึงจะช่วยให้สามารถเก็บข้อมูล และเรียกงานมาใช้ได้สะดวก เพื่อทำให้เข้าใจได้ง่ายถึงวิธีการจำแนกข้อมูลที่นำไปเก็บไว้ Table จึงแบ่งลักษณะการประยุกต์ Table ตาม วัตถุประสงค์ในการเก็บข้อมูลออกเป็น 2 ลักษณะ คือ

  1. Table เก็บข้อมูล หรือ Transaction file ข้อมูลในที่นี้หมายถึง ข้อมูลต่างๆ ที่มีการบันทึกเป็นประจำ และเป็นข้อมุลที่แสดงการเคลื่อนไหวของระบบงาน เช่น รายการขายสินค้า รายการรับเข้าสินค้า การมาทำงานของพนักงาน เป็นข้อมูลที่จะนำมาวิเคราะห์และประมวลผล
  2. Table เก็บค่าคงที่ หรือ Master file ค่าคงที่ในที่นี้หมายถึง ข้อมูลที่ใช้การประกอบในการวิเคราะห์ มีการเปลี่ยนแปลงน้อยและทำหน้าที่เป็นข้อมูลหลักสำหรับการอ้างอิง เช่น รายชื่อลูกค้า รายชื่อพนักงาน รหัสเครื่องจักร

การ แบ่งข้อมูลและ Table ออกเป็น 2 ลักษณะดังกล่าว จะทำให้สะดวกในการจัดเก็บ และการวิเคราะห์โดย Table เก็บข้อมูล จะกำหนดให้พิจารณาเก็บเฉพาะข้อมูลเบื้องต้น ที่ต้องนำไปใช้ในการประมวลผล ในส่วน Table เก็บคงที่ จะนำไปใช้งานเพื่อป้องกันการป้อนค่าผิด เนื่องจากเป็นค่าอ้างอิงของระบบงาน ด้วยการใช้วิธีเลือกรายการที่มีอยู่ (เช่น สร้างเป็น Combo box) หรือใช้ดึงมาแสดงผลผ่านคิวรี่ ในการจัดแบ่งตามคุณสมบัติของ Table จะทำให้การออกแบบฐานข้อมูลเพื่อจัดเก็บ และ การประมวลผลข้อมูลทำได้โดยสะดวก


การกำหนด Table และฟิลด์

การกำหนด Table

  1. วิธีการจัดกลุ่ม ควรจัดกลุ่มข้อมูลในแต่ละ Table ควรให้มีเพียงวัตถุประสงค์เดียว เพื่อความสะดวกใน การจัดทำขั้นตอนการทำงาน และการประมวลผลข้อมูล
  2. การจัดกลุ่มข้อมูล ถ้าการจัดกลุ่มข้อมูลในแต่ละ Table ทำได้ถูกต้อง ฟิลด์ทุกฟิลด์จะต้องมีข้อมูลที่นำไปเก็บ และข้อมูลแต่ละข้อมูล จะต้องมีการบันทึกเพียงครั้งเดียว
    ถ้าแต่ละเรคคอร์ดที่เพิ่มเข้าไปแล้ว ปรากฏมีฟิลด์ว่าง ไม่ได้ใช้เก็บข้อมูล แสดงว่าฟิลด์ที่กำหนดนั้น อาจจะมีความสัมพันธ์ กับข้อมูลกลุ่มอื่น มากกว่าจัดเก็บใน Table ที่กำหนดไว้
    ถ้าการบันทึกข้อมูล พบว่ามีฟิลด์ใดฟิลด์หนึ่ง มีการบันทึกมากกว่า 1 ครั้ง ควรพิจารณาว่า ฟิลด์นั้นมีความเหมาะสม ที่จะอยู่ใน Table ใดมากกว่า และสามารถส่งข้อมูลไปยัง Table ที่เรียกใช้ด้วยคิวรี่ เพื่อการแสดงผลของ 2 Table เป็นกลุ่มข้อมูล (Recordset)
  3. ข้อมูลกลุ่มเดียวกันควรเก็บด้วยกัน ในบางกรณีอาจจะมีบาง Table ที่มีฟิลด์ต่างๆ เหมือนกันทั้งหมด แต่มีการแยกข้อมูล เช่น การสร้าง Table ใบสั่งซ่อมเดือนมกราคม ใบสั่งซ่อมเดือนกุมภาพันธ์ ในลักษณะนี้ Table ควรรวมกัน แล้วการแยกเป็นรายเดือนด้วยคิวรี่ เพราะต้องคำนึงว่าการวิเคราะห์เงื่อนไขอื่นจะทำได้ยาก เช่น การวิเคราะห์เป็นรายไตรมาส รายปี หรือ ประวัติรวมของเครื่องจักร
  4. กลุ่มข้อมูลค่าคงที่ จะ ช่วยในการเก็บรายละเอียดของค่าคงที่ต่างๆ เพื่อสามารถทำให้ข้อมูลในแต่ละ ฟิลด์มีความเหมือนกัน โดยการใช้เครื่องมือ เช่น Combo Box และลดความซ้ำซ้อนในการเก็บข้อมูล ซึ่งคิวรี่สามารถ ทำหน้าที่โดยไม่จำเป็นต้องมีการเก็บค่า

การกำหนดฟิลด์

  1. ข้อมูลแต่ละฟิลด์ใน Table เดียว ควรสอดคล้องกับจุดมุ่งหมายของ Table ในการเก็บสารสนเทศ
  2. ค่าที่มาจากคำนวณ ไม่จำเป็นต้องเก็บไว้ใน Table เช่น ผลรวมสามารถใช้ [ราคาต่อหน่วย] * [จำนวน] หรือจำนวนวันซ่อม สามารถใช้ [วันที่ซ่อมเสร็จ] - [วันที่แจ้งซ่อม] ซึ่งคิวรี่สามารถทำหน้าที่ได้ โดยไม่จำเป็นต้องเก็บค่าลักษณะนี้
  3. เก็บค่าเท่าที่จำเป็น เช่น ชื่อพนักงานใน Table ต่างๆ สามารถเก็บเฉพาะรหัสพนักงาน แต่เมื่อต้องการ แสดงรายละเอียดของพนักงานให้ใช้คิวรี่เชื่อมระหว่าง Table ที่เก็บรายละเอียดพนักงานกับ Table ที่เก็บเฉพาะรหัสพนักงาน แล้วให้แสดงผลลัพธ์และข้อมูลที่ต้องการออกมา ทำให้ไม่จำเป็นต้องเก็บค่าเดียวในหลายๆ แห่ง


Read more ►

Default value คุณสมบัติอื่นๆ

0 comments

การกำหนดค่าเริ่มต้น ( Default value)

ในบางกรณีหน ดค่าเริ่มต้น ( Default value) อาจจะมีความจำเป็นในกรณีที่ทราบว่ามีค่าค่อนข้างแน่นอน หรือจำเป็นต้องมีค่าเสมอ เช่น การกำหนด Quantity เป็น 1 ในรายการสั่งซื้อ

ถ้ามีการกำหนดค่าเริ่มต้น ค่านี้จะปรากฏขึ้น เมื่อเพิ่มเรคคอร์ดใหม่ แต่ค่าสามารถแก้ไขได้

นอกจากนี้การกำหนดสามารถกำหนดด้วย Expression เช่น = Date() สำหรับข้อมูลประเภท Date / Time

การบังคับค่า ( Required Data Entry)

ใน บางฟิลด์มีความจำเป็นต้องบังคับให้มีค่าเสมอ เพื่อป้องกันความผิดพลาด ในการละเลยข้อมูลที่สำคัญเช่น Table รายชื่อพนักงาน สามารถบังคับว่า ต้องมีชื่อพนักงานเสมอ การกำหนดให้ตั้งค่าคุณสมบัติ Required เป็น Yes

Zero-Length string

ข้อมูล ประเภท Text และ Memo สามารถกำหนดค่า Allow Zero Length เพื่อรักษาคุณสมบัติ ในกรณีที่ ฟิลด์เชื่อมในคิวรี่ ลักษณะ Zero-Length จะคล้ายกับค่าว่าง ( Null) แต่จะแตกต่างกันตรงที่ Zero-Length String ยัง ถือเสมือนมีตัวอักษรอยู่

การกำหนดค่าทำได้โดยดังค่าที่ Allow Zero Length ด้วยเครื่องหมายคำพูดเปิดและปิด (" ")

Validation Rule และ Validation Text

การกำหนดค่า Validation Value จะขึ้นกับประเภทข้อมูล การกำหนดจะช่วยป้องกันความผิดพลาด หรือ
เตือนให้ผู้ป้อนข้อมูลได้ทราบถึงความผิดปกติของข้อมูลกำลังป้อนเข้าไป

การ ตั้งค่า ให้กำหนดที่ Validation Rule เช่น ที่ฟิลด์ BirthDate สามารถกำหนดข้อมูลวันเกิดต้องน้อยกว่าหรือเท่ากับวันที่ปัจจุบัน ด้วย Expression <= date() และกำหนด Validation text ว่า "วันเกิดต้องน้อยกว่าหรือเท่ากับวันที่ปัจจุบัน"

Read more ►
 

Copyright © Access เบื้องต้น Design by Gu