แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Tatchawin

หน้า: [1]
1
ขอปรึกษาและสอบถามท่านผู้รู้ครับ

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

โดยทั้งหมด ผมได้ออกแบบ Databased ตาม ER Diagram ตามภาพที่ 1 แบ่งเป็นฝั่งซ้ายและฝั่งขวา

ข้อ 1-4 ผมได้ออกแบบ Databsed เพื่อใช้เก็บข้อมูลในฝั่งซ้าย(ตารางพื้นที่สีเขียวเก็บข้อ 1-3 ส่วนตารางพื้นที่สีน้ำเงินเก็บข้อมูลข้อ 4)
ซึ่งผมทำ Databased ให้ออกมาเป็นรูปแบบที่ตั้งใจ นำไปออกแบบฟอร์มกรอกข้อมูลเพิ่มเข้าได้ ตามที่ตั้งใจไว้แล้วครับ
แต่ที่ติดปัญหาคือข้อ 5 คือ เรื่องประวัติการฝึกอบรมนั้น ซึ่ง Databased จะอยู่ทางขวามือ(ตารางพื้นที่สีแดง)ของ ER Diagram

โจทย์ในการจัดทำ
1. ต้องการทำฟอร์มบันทึกข้อมูลการฝึกอบรมให้ได้ตามแบบรูปภาพที่ 2 คือ มี Form ที่มี tblSession (เก็บข้อมูลSessionID, ชื่อหลักสูตร, Description, Objectiveหลักสูตร, ระยะเวลาการฝึกอบรม,
ผู้สอน, บริษัทที่มาสอน ฯลฯ)เป็น Record Source และมี Subform ที่บันทึกชื่อผู้เข้าอบรม ในแต่ละ SessionID (Dropdown เลือก NationalID หรือชื่อ-สกุลปุ๊บ ขึ้น WorkID, ตำแหน่ง, สังกัดพนง.ปั๊ปทันที)
2. Subform ในข้อ 1 นั้น ต้องบันทึกข้อมูลไว้ด้วยว่า พนง.ที่มาอบรมนั้น ขณะนั้น มีตำแหน่งอะไร สังกัดอะไร เพื่อจะนำข้อมูลไปใช้ต่อในข้อ 3
3. ต้องรู้ให้ได้ว่าตำแหน่งงานทั้งหมดใน Databased นั้น จะต้องอบรมอะไรบ้าง เพื่อให้เป็นไปตามที่กฎหมายกำหนด แล้วพนง.ที่อยู่ในตำแหน่งนั้น ๆ
ได้อบรมครบตามกฎหมายกำหนดแล้วหรือยัง


การแก้โจทย์
ข้อ 1-2: ผมจัดทำ
- Form ขึ้นมาโดยใช้ tblSession เป็น Record Source ได้
- Subform โดยให้เป็น Unbound SubForm ซึ่งผมเขียน Expression ที่ txtWorkID โดยเมื่อ Dropdown เลือก NationalID เมื่อไหร่ ระบบจะไปดึง Last WorkID ของพนง.คนนั้น ๆ มาจาก
tblWork(Transaction Table) มาโชว์ จากนั้น ก็เขียน VBA on click ที่ปุ่ม Save ให้ Save ข้อมูล Subform ลง tblTrainingRec
ข้อ 3: ผมยังไม่รู้แนวทางจะทำอย่างไรดี ทั้งการออกแบบ Databased, การทำแบบฟอร์มเพื่อคีย์หลักสูตรที่แต่ละตำแหน่งต้องอบรมให้ครบตามกฎหมาย, การทำ Report

ปัญหาที่เกิดขึ้น
ข้อ 1-2: เกิด Error ใน Subform ตามภาพที่ 2
ข้อ 3: ผมยังไม่รู้แนวทางจะไปต่ออย่างไรดี ทั้งการออกแบบ Databased, การทำแบบฟอร์มเพื่อคีย์หลักสูตรที่แต่ละตำแหน่งต้องอบรมให้ครบตามกฎหมาย, การทำ Report

คำถาม: เพื่อให้ได้ตามโจทย์ที่กำหนด
1. แนวทางการออกแบบ Databased ที่ผมทำมานี้ เหมาะสมแล้วหรือไม่? ถ้าไม่ ผมควรจะออกแบบอย่างไรเพื่อให้ได้ตามโจทย์ที่ผมต้องการ?
2. ถ้าผมออกแบบ Databased มาถูกทางแล้ว จะทำอย่างไรให้ Subform ไม่ Error ครับ? แล้วจะไปต่อกับเรื่องการกำหนดหลักสูตรที่แต่ละตำแหน่งต้องอบรมให้ครบตามกฎหมายอย่างไรดีครับ?

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




โพสต์นี้ได้รับคำขอบคุณจาก: พิชญะ ชัยชนะ

2
สวัสดีครับ จะรบกวนปรึกษาครับ Code ครับ โดยผมต้องการทำ Form แก้ไขประวัติพนง.โดยทำ Form ใหญ่ 1 Form และ SubForm ย่อย 2 Subform
1. Subform1(บน) เอาไว้ใช้เปน Selector ตามแต่ละ WorkID
2. Subform2(ล่าง) เอาไว้ใช้แสดงรายละเอียดของจาก SubForm1 ซึ่งการแก้ไขข้อมูล จะแก้ไขผ่าน Subform นี้ครับ
โดยทั้งสอง Subform ใช้ Queries ตัวเดียวกัน

ความต้องการของผมคือ หากกรอก TerminatedDate ที่ Record ใด Record หนึ่ง ก็ให้ค่า TerminatedDate ที่กรอกนั้น ถูก Insert ลงไปยัง Record อื่นๆที่มี ContractorID เดียวกันให้หมด ผมควรจะเขียนโค้ดอย่างไรดีครับ

ปล. โค้ดที่ผมเขียนคือ ตามด้านล่างนี้ครับ ซึ่งไม่ได้ผลเลยครับ
รบกวนทุกท่านด้วยครับ ขอบคุณมากครับ

Private Sub TerminatedDate_Click()
    DoCmd.RunSQL "SELECT GenerateID FROM tblWork WHERE GenerateID'" = Me.GenerateID
    DoCmd.RunSQL "INSERT INTO tblWork([TerminatedDate])" & _
        "Values ('" & Me.TerminatedDate & "');"
    End If
End Sub

โพสต์นี้ได้รับคำขอบคุณจาก: assetthai

3
ขอบคุณมากๆ ทำได้แล้วครับ
คลิปในยูทูปของท่าน มีประโยชน์มากครับ เอาไปประยุกต์ใช้ได้จริง
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

หน้า: [1]