สอบถามจัดทำ Program บันทึกประวัติแรงงานรับเหมาครับ


0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

29 ต.ค. 62 , 21:17:24
อ่าน 851 ครั้ง

Tatchawin

สวัสดีครับทุกท่าน ผมมีคำถามเกี่ยวกับการจัดทำโปรแกรมบันทึกประวัติแรงงานรับเหมา(แรงงาน Outsource ไม่ใช่พนักงานของบริษัท)ครับ
เนื่องจากผมได้ดูคลิป: ระบบบันทึกเวลาเข้าออก: Ep.2 (ฟอร์มจัดการข้อมูลพนักงาน)
ของคุณ Access Creator(คิดว่าท่านคงอยู่ในเว็บบอร์ดนี้แน่ๆ)
แล้วมีโจทย์จากทางหัวหน้าพอดี ก็เลยจะมาลองทำดู จุดประสงค์ของโปรแกรมมีดังนี้ครับ

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

ทีนี้พอลอง ออกแบบ Databased ผมพบว่าหัวใจสำคัญน่าจะอยู่ที่ ข้อ 1 ครับ ถ้าข้อ 1 ทำได้ตามความต้องการ
ข้อ 2 และ3 ก็ไม่น่ายาก โดยเฉพาะข้อ 3 ที่มีข้อมูลจากบริษัทตรวจสุขภาพพนักงานส่งมาให้แล้ว ทั้งนี้ ผมมีความต้องการดังนี้

ความต้องการข้อการจัดการข้อมูลแรงงานรับเหมา
 - กรณีแรงงานรับเหมาเปลี่ยนชื่อ: ผมอยากจะให้เมื่อพนักงานเปลี่ยนชื่อแล้ว ไม่ไปกระทบกับ Transaction เดิม เช่น เดิมชื่อนายสมชาย เปลี่ยนเป็นพุฒิพงษ์ ผมก็อยากให้เก็บ Record ของนายสมชายไว้ครบ ทั้งที่อยู่ เบอร์โทร ลักษณะงานที่ทำ สังกัดบริษัท ประวิตการถูกลงโทษ ฯลฯ เมื่อเปลี่ยนชื่อแล้วก็เริ่มเป็น Record ใหม่ของนายพุฒิพงษ์ แต่ทุกอย่างยังคงเหมือนสมัยที่ชื่อนายสมชาย เพียงแต่เปลี่ยนชื่อมาเท่านั้น
 - กรณีย้ายงาน: คล้ายกับข้อด้านบนครับ โดยที่เมื่อมีการย้ายงาน ก็อยากให้ใส่วันที่โยกย้าย(สิ้นสุดการทำงานในตำแหน่งนั้น) ให้เริ่ม Record ใหม่ โดยยกชื่อเดิม ที่อยู่เดิม สังกัดบริษัทเดิม ถูกลงโทษ ยกข้อมูลของเดิมในช่วงที่ทำงานนั้นมาเกือบหมด(ยกเว้นประวัติการฝึกอบรม ประวัติการตรวจปัจจัยเสี่ยง ที่อยากให้จบเป็นของช่วงเวลาที่ทำงานเดิม) แต่เปลี่ยนแค่ลักษณะงานที่ทำ
 - กรณีลาออก: ส่วนใหญ่แรงงานรับเหมาบริษัทผมจะเข้าๆออกๆอยู่เป็นประจำครับ ทำงานที่บริษัทเดิม สักพักก็ลาออกไป แล้วก็กลับมาสมัครใหม่ ในบริษัทใหม่ ผมอยากให้เก็บข้อมูลสมัยก่อนที่เขาจะลาออก ที่เคยทำงานกับบริษัทเดิมไว้ ไม่ทับกับของที่สมัครมาใหม่ มีการ Maintain วันที่ลาออก สาเหตุที่ลาออกไป

ความต้องการผมประมาณนี้ครับ ผมเลยไม่แน่ใจตั้งแต่การออกแบบ Databased ควรจะออกแบบอย่างไร แล้วจะต้องเอาไปทำ Query ต่ออย่างไรดี
เพื่อที่จะให้มีการเก็บทุก Transaction เอาไว้ ไม่มีการกระทบหรือบันทึกทับของเดิม นอกจากนี้แล้ว
ถ้าแรงงานรับเหมาแค่มีการเปลี่ยนชื่อหรือย้ายงานก็สามารถดึงข้อมูลบางส่วนหรือทั้งหมดที่เกี่ยวข้อง มาใช้ได้ Maintain วันย้าย วันลาออก เหตุผลย้าย เหตุผลลาออกได้

ประมาณนี้ครับ ไม่แน่ใจผมถามงงหรือเปล่า 555555
ยังไงรบกวนพี่ๆด้วยนะครับ ขอบคุณมากครับ

 

29 ต.ค. 62 , 21:25:19
ตอบกลับ #1

Tatchawin

ตัวอย่างของข้อมูลที่พบร่างๆไว้นะครับ ว่าควรจะมีข้อมูบอะไรบ้าง


 

30 ต.ค. 62 , 15:33:51
ตอบกลับ #2

สันติสุข

ตามหลักการแล้ว อะไรที่ขึ้นกับคนนั้นและไม่มีทางเปลี่ยน ก็ให้ผูกกับเทเบิลที่มี Primary Key เป็น NationalID เช่น วันเกิด  แต่อะไรที่เปลี่ยนแปลงไปได้ เช่น ชื่อ นามสกุล ที่อยู่ เบอร์โทร ก็ต้องผูกกับเทเบิลที่มี Primary Key เป็น NationalID + NumberOfEdited  แต่เท่าที่ดู มีแค่ฟิลด์วันเกิดเท่านั้นที่ไม่เปลี่ยนแปลง ดังนั้นการจะแยกเป็นอีกเทเบิลที่มีแต่ฟิลด์ NationalID กับ BirthDate อาจจะดูไม่คุ้มกับการทำ ผมคิดว่าให้เทเบิล tbl_Contracter และ tbl_Address มี Primary Key เป็น NationalID + NumberOfEdited ไปเลยจะดีกว่า และคิดว่าเพิ่มฟิลด์ประเภท Boolean อีกฟิลด์ทั้งใน 2 เทเบิล เพื่อบอกว่า Edition ไหน เป็น Edition ปัจจุบันไปด้วย จะทำให้ตอนค้นหาข้อมูลปัจจุบันเพื่อนำมาใช้ในส่วนต่างๆ ไม่ยุ่งยากเมื่อเทียบกับการต้องหาว่า Edition ไหนเป็น Edition ล่าสุดโดยไม่มีฟิลด์ที่ว่า แต่ก็ต้องจัดการให้ดีๆว่า ในขณะใดขณะหนึ่งต้องมีเพียงเรคอร์ดเดียวเท่านั้นที่ฟิลด์ที่ว่ามีค่าเป็น True    ส่วนเทเบิลอื่นๆที่ต้องโยงมายัง 2 เทเบิลนี้ ก็ต้องเก็บทั้ง NationalID และ NumberOfEdited ไปด้วย ดังนั้น transaction ต่างๆก็จะอิงกับข้อมูลที่เป็นปัจจุบัน ณ เวลานั้นครับ
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: sjs, Tatchawin

30 ต.ค. 62 , 16:39:41
ตอบกลับ #3

Tatchawin

ขอบคุณสำหรับคำตอบมากๆครับ ท่านมีตัวอย่างไฟล์ที่เคยทำในลักษณะนี้ไหมครับ หรือท่านใดที่มีช่วยแนะนำผมหน่อยนะครับ

ขอบคุณครับ

 

30 ต.ค. 62 , 16:40:07
ตอบกลับ #4

Tatchawin

ตามหลักการแล้ว อะไรที่ขึ้นกับคนนั้นและไม่มีทางเปลี่ยน ก็ให้ผูกกับเทเบิลที่มี Primary Key เป็น NationalID เช่น วันเกิด  แต่อะไรที่เปลี่ยนแปลงไปได้ เช่น ชื่อ นามสกุล ที่อยู่ เบอร์โทร ก็ต้องผูกกับเทเบิลที่มี Primary Key เป็น NationalID + NumberOfEdited  แต่เท่าที่ดู มีแค่ฟิลด์วันเกิดเท่านั้นที่ไม่เปลี่ยนแปลง ดังนั้นการจะแยกเป็นอีกเทเบิลที่มีแต่ฟิลด์ NationalID กับ BirthDate อาจจะดูไม่คุ้มกับการทำ ผมคิดว่าให้เทเบิล tbl_Contracter และ tbl_Address มี Primary Key เป็น NationalID + NumberOfEdited ไปเลยจะดีกว่า และคิดว่าเพิ่มฟิลด์ประเภท Boolean อีกฟิลด์ทั้งใน 2 เทเบิล เพื่อบอกว่า Edition ไหน เป็น Edition ปัจจุบันไปด้วย จะทำให้ตอนค้นหาข้อมูลปัจจุบันเพื่อนำมาใช้ในส่วนต่างๆ ไม่ยุ่งยากเมื่อเทียบกับการต้องหาว่า Edition ไหนเป็น Edition ล่าสุดโดยไม่มีฟิลด์ที่ว่า แต่ก็ต้องจัดการให้ดีๆว่า ในขณะใดขณะหนึ่งต้องมีเพียงเรคอร์ดเดียวเท่านั้นที่ฟิลด์ที่ว่ามีค่าเป็น True    ส่วนเทเบิลอื่นๆที่ต้องโยงมายัง 2 เทเบิลนี้ ก็ต้องเก็บทั้ง NationalID และ NumberOfEdited ไปด้วย ดังนั้น transaction ต่างๆก็จะอิงกับข้อมูลที่เป็นปัจจุบัน ณ เวลานั้นครับ

ขอบคุณสำหรับคำตอบมากๆครับ ท่านมีตัวอย่างไฟล์ที่เคยทำในลักษณะนี้ไหมครับ หรือท่านใดที่มีไฟล์หรือมีประสบการณ์ด้านนี้ ช่วยแนะนำผมหน่อยนะครับ

ขอบคุณครับ

 


บอร์ดเรียนรู้ Access สำหรับคนไทย


 

Sitemap 1 2 3 4 5