กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
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 ................ (ว/ด/ป)
ส่งรายงานฉบับสมบูรณ์ ................ (ว/ด/ป)
สวัสดีครับ
ผมมีปัญหาอยากจะขอความร่วมมือกับผู้เชี่ยวชาญโปรแกรม 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
2 @R06461
ขอบคุณครับ อาจารย์สุภาพ ผมลองทำตามที่อาจารย์แนะนำ
สร้างตารางทั้ง 4 ตาราง แล้ววิธีการนำตารางทั้ง4ตารางไปทำการเชื่อมโยง
ใน Query เราต้องใช้ข้อมูลตัวไหนมั่งครับที่สัมพันธ์กัน
1.การที่จะดูว่าข้อมูลไหนสัมพันธ์กันใน Query มีวิธีการอย่างไร
2.การใช้ปุ่มค้นหาข้อมูลในตารางทำอย่างไรให้สามารถค้นหาได้
3.การเปรียบเทียบข้อมูล เช่น ต้องการหาจำนวนผู้วิจัยทั้งหมดกี่คนที่เคลียร์เงินในงวดที่ 1 แล้ว เป็นต้น ทำอย่างไร
ขอบคุณครับ
สร้างตารางทั้ง 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 ดูครับ น่าจะได้ผลตามที่ต้องการ
เปิดตาราง แล้วใช้ 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 ดูครับ น่าจะได้ผลตามที่ต้องการ
Time: 0.1192s
ผมดูคร่าวๆ ก็น่าจะต้องมีตารางอย่างน้อย 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 ครับ