ช่วยออกแบบฐานข้อมูลให้หน่อยครับท่านผู้เชียวชาญAccess
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 422   3
URL.หัวข้อ / URL
ช่วยออกแบบฐานข้อมูลให้หน่อยครับท่านผู้เชียวชาญAccess

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

หนุ่มเอก
prinya@mju.ac.th

ฐานข้อมูลที่ต้องการมีดังนี้
ชื่อโครงการ.................................................. (เป็นโครงการย่อยในชุดโครงการใหญ่)
อยู่ในชุดโครงการ ...................................... (โครงการใหญ่)
รหัสโครงการ ............................................. (เป็นตัวเลข 12 หลัก)
ระยะเวลา ..................... (ปี)
ช่วงเวลา ........................ (เช่น ตั้งแต่ ม.ค.46-ธ.ค.47)
ดำเนินการปีที่ ...............
งบประมาณ ............................. (ตัวเลข บาท)
งบประมาณทั้งชุดโครงการ ...................... (ตัวเลข บาท)
ผู้อำนวยการชุดโครงการ ............................. (ชื่อ)
หัวหน้าโครงการวิจัย ................................... (ชื่อ)
เบิกเงินงวดที่ 1 ............................. (บาท) วันที่เบิก ............................. (ว/ด/ป)
จำนวนเงินที่เคลียร์งวดที่ 1 .......... (บาท) วันที่เคลียร์ ........................ (ว/ด/ป)
เบิกเงินงวดที่ 2 ............................. (บาท) วันที่เบิก ............................. (ว/ด/ป)
จำนวนเงินที่เคลียร์งวดที่ 2 .......... (บาท) วันที่เคลียร์ ........................ (ว/ด/ป)
เบิกเงินงวดที่ 3 ............................. (บาท) วันที่เบิก ............................. (ว/ด/ป)
จำนวนเงินที่เคลียร์งวดที่ 3 .......... (บาท) วันที่เคลียร์ ........................ (ว/ด/ป)

วันที่ทำสัญญา ........................ (ว/ด/ป)
ส่งรายงานความก้าวหน้าครั้งที่ 1 ................ (ว/ด/ป)
ส่งรายงานความก้าวหน้าครั้งที่ 2 ................ (ว/ด/ป)
ส่งรายงานความก้าวหน้าครั้งที่ 3 ................ (ว/ด/ป)
ส่งรายงานฉบับสมบูรณ์ ................ (ว/ด/ป)



3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R06455
คงจะต้องมาเริ่มที่การออกแบบตารางก่อนครับ

ผมดูคร่าวๆ ก็น่าจะต้องมีตารางอย่างน้อย 4 ตาราง

tblProject:
ProjectCode (12 digits), ProjectName, ProjectType (1 = Main Project, 2 = SubProject), Budget, DateStart, DateEnd, ContractDate


ระยะเวลา (ปี) และ ดำเนินการปีที่ ไม่ต้องเก็บไว้ในตาราง เพราะสามารถจะคำนวณหาจาก DateStart และ DateEnd ได้

tblStaff:
StaffID, StaffName, StaftSurname, Position (1= Director, 2 = Head), Phone, Fax, Adress1, Addrress2, Email, ....

tblBudgetRelease:
ReleaseID, ProjectCode, ActionDate, Amount, ActionType (1=Released, 2= Clear)

tblReport:
ReportID, ProjectCode, ReportDate, ReportType (1= Final, 2= On Going)

การออกแบบฐานข้อมูลจะมีความสำคัญมาก ต้องทำ Normalization ให้เหมาะสมก่อน ซึ่งการทำ Normalization มีหลายระดับ

ข้อมูลที่ให้มาข้างต้นเป็น Normal Form 1 จึงต้องทำให้เป็นอย่างน้อย Normal Form 3 แล้วค่อยนำไปสร้างเป็นตารางอย่างที่ผมแนะนำข้างต้น

ให้ศึกษาการทำ Normalization เพิ่มเติมในหนังสือที่พูดถึงเรื่องการออกแบบ Database ครับ


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

ขอบคุณครับ
3 @R06467
ให้กำหนดให้ฟีลด์แรกของแต่ละตารางเป็น Primay Key ก่อน ทุกตารางนะครับ

เปิดตาราง แล้วใช้ mouse คลิกที่ฟีลด์แรก แล้วกดปุ่ม 'รูปกุญแจ' บน Toolbar แล้ว Save ตารางนั้นด้วย

จากนั้นก็ต้องไปสร้าง Relationships ต่อ

โดยไปที่เมนู Tools>Relationships...> เลือกตารางทั้ง 4 ลงไว้
แล้วไปคลิกที่ฟีลด์แรกของแต่ละตาราง ไปเชื่อมกับชื่อฟีลด์เดียวกันในตารางอื่นๆ เช่น ลากฟีลด์ ProjectCode ในตาราง tblProject ไปวางลงในฟีลด์ ProjectCode ของตาราง tblBudgetRelease และตาราง tblReport

ลืมบอกไปว่าให้เพิ่มฟีลด์ StaffID ลงในตาราง tblProject ด้วยครับ
จากนั้นก็ให้เพิ่ม Relationships ของตาราง tblStaff และ tblProject โดยการเชื่อมฟีลด์ StaffID เข้าด้วยกัน

ส่วนการค้นหาข้อมูล ลองศึกษาจากตัวอย่างในกระทู้เก่าๆ ดูนะครับ ลองค้นด้วยคำว่า DynamicQuery ดู

ส่วนข้อ 3 ให้สร้างเป็น Query โดยใช้ข้อมูลจากตาราง 3 ตารางแรก
แล้วเลือกฟีลด์ StaffId, StaffName
และฟีลด์ต่อไปนี้ แต่ไม่ต้องคลิกเลือกให้แสดงผล แต่จะใช้เป็นเงื่อนไขในการกรองข้อมูล คือฟีลด์ ActionDate, ActionType
แล้วกดที่ปุ่มเครื่องหมาย Sum (Totals) บน Toolbar
จากนั้นให้เลือก Group By ในฟีลด์ ActionDate ให้เป็น Count แล้วใส่เงื่อนไข >1 ลง และช่อง ActionType ให้เป็น Where และใส่ 2 ลงในช่อง Criteria

ลอง View ดูครับ น่าจะได้ผลตามที่ต้องการ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1192s