กระทู้เก่าบอร์ด อ.Yeadram
1,720 3
URL.หัวข้อ /
URL
ขอความช่วยเหลือหน่อยครับท่านผู้รู้
กำลังเขียนโปรแกรมรับสมัครนักเรียนอยู่ครับอยากออกรหัสได้
ข้อมูล
ปี 52
ระดับ 1 ปวช. 2 ปวส.
ภาค 1 ปกติ 2 ทวิภาคี 3 ปวส.ม6 4 ปวส.ต่างสาขา
สาขา 01 คอมพิวเตอร์ 02 ก่อสร้าง 03 ช่างยนต์ เป็นต้น
ลำดับ 0001 0002
รวม 521101001
ช่วยหน่อยครับ
ข้อมูล
ปี 52
ระดับ 1 ปวช. 2 ปวส.
ภาค 1 ปกติ 2 ทวิภาคี 3 ปวส.ม6 4 ปวส.ต่างสาขา
สาขา 01 คอมพิวเตอร์ 02 ก่อสร้าง 03 ช่างยนต์ เป็นต้น
ลำดับ 0001 0002
รวม 521101001
ช่วยหน่อยครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R04241
โทษทีครับ
แค 6 ฟิลด์ครับ (นับเกิน)
แค 6 ฟิลด์ครับ (นับเกิน)
3 @R04246
-เลขที่อัตโนมัติจะหามาได้ จะสร้างขึ้นมาได้ ก็ต้องเป็นตอนเพิ่มเรคคอร์ดใหม่
-การเพิ่มเรคคอร์ดใหม่ ต้องเพิ่มผ่านฟอร์ม
-กระบวนการสร้างเลขที่ ต้องทราบข้อมูลประกอบอื่นๆ อย่างน้อย 4 ข้อมูล คือ
+ ปี ของเรคคอร์ดนั้น
+ ระดับ ของเรคคอร์ดนั้น
+ ภาค ของเรคคอร์ดนั้น
+ สาขา ของเรคคอร์ดนั้น
-นำข้อมูลประกอบทั้ง 4 อย่างมาจับเรียงต่อกันเป็นสายอักขระ
-นำสายอักขระที่ได้ไปเป็นเงือนไขในการค้นเลขที่ล่าสุดจากฐานข้อมูล
-นำเลขที่ล่าสุดที่ค้นหาได้ มาบวกด้วย 1 ก็จะได้เลขที่ใหม่
คำถามชวนคุณคิด
1 จะสร้างฟอร์มอย่างไร วางคอนโทรลลำดับอย่างไร
2 จะลำดับงานในฟอร์มอย่างไร ถึงจะทำให้ได้เลขที่ ที่ถูกต้องสมบูรณ์ ต้องให้ผู้ใช้กรอกข้อมูลอะไรก่อนหลัง และถ้าผู้ใช้กรอกข้อมูลไม่เป็นไปตามลำดับ คุณอาจจะหาข้อมูลประกอบที่สำคัญไม่ได้ นั่นอาจจะทำให้ ไม่ได้เลขที่ ที่สมบูรณ์ คุณมีแนวทางหรือการวางแผนแก้ปัญหาล่วงหน้าอย่างไร
3 จะรู้ได้อย่างไรว่า เลขปีที่ได้ มันจะเป็น 52 (พ.ศ.) มั่นใจได้ไหมว่ามันจะไม่เป็น 09 (ค.ศ)
กระบวนการสร้างเลขที่ มันไม่ยากครับ แต่ความยากมันอยู่ตรงการออกแบบฟอร์มกับลำดับของงานในฟอร์มนั่นต่างหากที่ต้องคิดให้ดี
dim Yr
dim Lv
dim Sc
dim Pt
Yr = Right(year(วันที่ของเรคคอร์ด),2)
Lv = ระดับ ของเรคคอร์ดนั้นๆ
Sc = ภาค ของเรคคอร์ดนั้นๆ
Pt = สาขา ของเรคคอร์ดนั้นๆ
dim crite
crite = Yr & Lv & Sc & Pt
dim mx
mx=Dmax("Right([ฟิลด์เลขที่], 3)","[ชื่อตาราง]","Left(ฟิลด์เลขที่,6) = '" & crite & "'")
mx = mx +1
เลขที่ใหม่ = crite & format(mx,"000")
-การเพิ่มเรคคอร์ดใหม่ ต้องเพิ่มผ่านฟอร์ม
-กระบวนการสร้างเลขที่ ต้องทราบข้อมูลประกอบอื่นๆ อย่างน้อย 4 ข้อมูล คือ
+ ปี ของเรคคอร์ดนั้น
+ ระดับ ของเรคคอร์ดนั้น
+ ภาค ของเรคคอร์ดนั้น
+ สาขา ของเรคคอร์ดนั้น
-นำข้อมูลประกอบทั้ง 4 อย่างมาจับเรียงต่อกันเป็นสายอักขระ
-นำสายอักขระที่ได้ไปเป็นเงือนไขในการค้นเลขที่ล่าสุดจากฐานข้อมูล
-นำเลขที่ล่าสุดที่ค้นหาได้ มาบวกด้วย 1 ก็จะได้เลขที่ใหม่
คำถามชวนคุณคิด
1 จะสร้างฟอร์มอย่างไร วางคอนโทรลลำดับอย่างไร
2 จะลำดับงานในฟอร์มอย่างไร ถึงจะทำให้ได้เลขที่ ที่ถูกต้องสมบูรณ์ ต้องให้ผู้ใช้กรอกข้อมูลอะไรก่อนหลัง และถ้าผู้ใช้กรอกข้อมูลไม่เป็นไปตามลำดับ คุณอาจจะหาข้อมูลประกอบที่สำคัญไม่ได้ นั่นอาจจะทำให้ ไม่ได้เลขที่ ที่สมบูรณ์ คุณมีแนวทางหรือการวางแผนแก้ปัญหาล่วงหน้าอย่างไร
3 จะรู้ได้อย่างไรว่า เลขปีที่ได้ มันจะเป็น 52 (พ.ศ.) มั่นใจได้ไหมว่ามันจะไม่เป็น 09 (ค.ศ)
กระบวนการสร้างเลขที่ มันไม่ยากครับ แต่ความยากมันอยู่ตรงการออกแบบฟอร์มกับลำดับของงานในฟอร์มนั่นต่างหากที่ต้องคิดให้ดี
dim Yr
dim Lv
dim Sc
dim Pt
Yr = Right(year(วันที่ของเรคคอร์ด),2)
Lv = ระดับ ของเรคคอร์ดนั้นๆ
Sc = ภาค ของเรคคอร์ดนั้นๆ
Pt = สาขา ของเรคคอร์ดนั้นๆ
dim crite
crite = Yr & Lv & Sc & Pt
dim mx
mx=Dmax("Right([ฟิลด์เลขที่], 3)","[ชื่อตาราง]","Left(ฟิลด์เลขที่,6) = '" & crite & "'")
mx = mx +1
เลขที่ใหม่ = crite & format(mx,"000")
Time: 0.3668s
ก็กำหนด ฟิลด์ขี้นมา 7 ฟิลด์ ด้านหน้าสุด ที่เหลือก็เป็นรายละเอียด นศษ.
Auto Runing ปี ระดับ ภาค สาขา ลำดับ
ก็ได้รหัสเรียบร้อย
ตอนทำ Report หรือ Query ก็ค่อยจับรวมกัน เรียงใหม่ ก่อนหลังตามใจชอบ