... รบกวนอาจารย์สุภาพเกี่ยวกับเรื่องรหัสพนักงานหน่อยครับ ...
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 343   2
URL.หัวข้อ / URL
... รบกวนอาจารย์สุภาพเกี่ยวกับเรื่องรหัสพนักงานหน่อยครับ ...

คือ ปกติรหัสทั่วๆ ไป ก็จะเรียง 0001 0002 ... แบบเริ่มต้นอะไรประมาณนี้ใช่ไหมครับ ง่ายและสะดวกดี

แต่ที่นี้บริษัทมันมีหลายแผนกหลายตำแหน่ง ผมก็เลยอย่างทำแบบ 0000-000 ( สี่หลักแรกคือรหัสแผนกและตำแหน่งน่ะครับ) ซึ่งจะทำให้ แบ่งเป็นสัดเป็ฯส่วนดี เข้าใจง่าย

แต่ทีนี้ติดปัญหาว่า

ในหน้าฟอร์ม add พนักงาน เวลาจะ add แต่ละคน ผมได้ใส่คำสั่ง ให้โปรแกรมมันหารหัส พนักงานล่าสุด แล้วบวก ไปอีก 1 (ใช้ dmax น่ะครับ)

แต่ทีนี้พอรหัสเป็นแบบ มีแบ่งเป็นรหัสแผนกกับตำแหน่งเพิ่มขึ้นอีก (คือแบบ 0000-000 น่ะครับ)

มันมีปัญหา (คือพยายามเขียน code แล้วกลับไม่ work )

ดังนั้น เลยอยากปรึกษาอาจารย์ว่า เปลี่ยนรหัสกลับเป็นแบบ เลขเรียงกันอย่างเดียวเลยดีไหม เพราะว่าจะสะดวกใน การที่จะขึ้นรหัสล่าสุดสำหรับให้ user add ด้วย
คือรหัสแบบ 0001 0002 เรียงกันปกตินี่ มันมีข้อเสียอะไรไหมครับ

ขอบคุณมากๆ ครับ

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

1 @R04223
เอ่อ อาจารย์ครับ ขอถามอีกข้อนึง
คือว่า ปกติแล้วเนี่ย ตามบริษัทหรือโรงงานทั่วไป เค้าใช้รหัสลักษณะไหนกันเหรอครับ

ได้ยินมาว่า บางครั้งก็ใช้เก็บ สองแบบ คือ รหัสพนักงานประจำ กับรหัสพนักงานชั่วคราว

ผมควรทำแบบนี้้ดีไหมครับ มีข้อดีข้อเสียอย่างไรบ้าง

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

วัตถุประสงค์ของการออก รหัส คือการต้องการให้เป็น Primary Key ของตาราง เพื่อป้องกันการซ้ำซ้อนกัน และเพื่อใช้ในการ Link กับตารางอื่นๆ เพื่อไม่ต้องเก็บข้อมูลซ้ำซ้อน

ฉะนั้นจะออกแบบอย่างไรก็ได้ ที่เราสามารถจัดการได้ง่าย

สำหรับผม จะนิยมออกแบบรหัสให้มีความหมายอื่นๆ ในตัวของรหัสด้วย เช่น 2 หลักแรกเป็นปี 2 หลักต่อมาเป็นแผนก และหลักอื่นๆ ที่เหลือ ให้เป็นรหัสของแต่ละคนในแผนกนั้น

การเขียนโค้ดออกรหัสตรงนี้จะยุ่งยากหน่อย ผมจะใช้การดึง 2 หลักแรกจาก Date() ส่วนแผนก ก็ใช้ดึงจาก Combo Box ที่มีให้เลือก ส่วนหลักที่เหลือ ก็ใช้ DMax() ช่วย โดยตรวจสอบเงื่อนไขของ 4 หลักแรกด้วย

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