ต้องการให้ระบบ Auto run number
กระทู้เก่าบอร์ด อ.Yeadram

 2,482   5
URL.หัวข้อ / URL
ต้องการให้ระบบ Auto run number

ตัวเลขที่ต้องการให้ระบบแสดงคือ ตัวเลข 10 หลัก ประกอบไปด้วย
ddmmyyxxcc
dd คือ วันที่
mm คือ เดือน
yy คือ ปี
xx คือ ลำดับที่ Run ของแต่ละวัน
cc คือ เลขเครื่องจักรที่สั่งผลิต
ยกตัวอย่างเช่น
2311560108 หมายถึง วันที่ 23/11/56 สั่งผลิตที่เครื่อง 8 เป็นลำดับที่ 1
2311560205 หมายถึง วันที่ 23/11/56 สั่งผลิตที่เครื่อง 5 เป็นลำดับที่ 2
2311560301 หมายถึง วันที่ 23/11/56 สั่งผลิตที่เครื่อง 1 เป็นลำดับที่ 3
เมื่อเริ่มวันใหม่ ก็จะเปลี่ยนลำดับการ Run ไปด้วย เช่น
2411560106 หมายถึง วันที่ 24/11/56 สั่งผลิตที่เครื่อง 6 เป็นลำดับที่ 1
เป็นแบบนี้ไปทุกวัน

ไม่ทราบว่าพอจะมีแนวทาง หรือ วิธีในการสร้างตัวเลขชุดนี้อย่างไรดีครับ (มึน งง หาวิธีมาหลายวันแหละ) รบกวนช่วยแนะนำด้วยครับ

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

1 @R17581
dim sDate as string
sDate = format(date,"ddmmyy")
dim sMachineNumber as string
iMachineNumber = format(รายการที่กำลังจะบันทึกนี้เป็นรายการของเครื่องไหน,"00")
dim MaxID as long
MaxID = dmax("cLong(nz([recID],0))","tbProduction","Left([recID,6) ='" & sDate & "' and right([recID],2) = '" & sMachineNumber & "'")

MaxID = maxID +1
NewID = sDate & format(MaxID,"00") & sMachineNumber

... (มึน งง หาวิธีมาหลายวันแหละ) ... ถ้าไม่ค้นกระทู้เก่า ก็จะยิ่งเพิ่มจำนวนวัน ที่มึน งง ขึ้นไปอีก อิอิ
2 @R17583
ขอบคุณมากครับ เดี๋ยวจะลองเอาไปสร้างดูครับ

ว่าแต่เราต้องสร้างตาราง หรือ คิวรี่ อะไรเพิ่มเติมอย่างไรหรือไม่ครับ

หรือเราแค่เขียนคำสั่งนี้ใน VBA แล้วมากำหนด Marco ใน filed ที่เราต้องการครับ
3 @R17586
ปกติการใช้งาน autonumber เขาจะใช้กันบนฟอร์มนะครับ

คือจังหวะที่ผู้ใช้จะกรอกข้อมูลใหม่เพิ่มเข้าระบบ (หรือเพิ่มเข้าตาราง) เขาจะให้ผู้ใช้กรอกเข้าผ่านฟอร์ม ซึ่งในฟอร์มนี้แหละ จะมีระบบช่วยสร้างรหัส หรือช่วยสร้างไอดี ช่วยสร้าง number (จึงได้เรียกว่า auto number)

เราก็จะฝังคำสั่งพวกนี้ไว้ในเหตุการณ์สักอย่างครับ เช่น ตอนกดปุ่ม "บันทึก" หรือตอนที่กดปุ่ม "New Record" เป็นต้น ซึ่งพอเกิดเหตุการณ์ดังกล่าว เขาก็จะให้โค้ดชุดนี้ทำงาน เมื่อได้เลขรหัสชุดที่สร้างอัตโนมัตินี้แล้วก็อาจจะแค่ให้แสดงผลผ่าน textbox บนฟอร์ม หรือ สั่งให้บันทึกในตารางเลย ก็แล้วแต่การออกแบบโปรแกรม ของผู้ออกเบบครับ

ไม่ค่อยมีให้มันสร้างเองผ่าน คิวรี่นะครับ ลองทำความเข้าใจใหม่ ลองวางแผนโปรแกรมใหม่ดีมั้ยครับ เพราะสังเกตุจากคำถาม คล้ายๆ กับว่า คุณจะมาผิดทางครับ
4 @R17600
รบกวนผู้รู้แนะนำด้วยครับ ถ้าไม่รังเกียจช่วยแสดงตัวอย่างให้ดูด้วยครับ
ไม่เก่ง Access แต่โดนไฟต์บังคับให้ใช้ Access อ่ะครับ
5 @R17601
เริ่มเข้าใจมาบ้างแล้ว และได้ลองสร้าง txtbox ลงไปในฟอร์ม พร้อมกับทำการกำหนดนิพจน์ ตามที่คำสั่งที่ให้มา
โดยในส่วนของ
iMachineNumber = format(รายการที่กำลังจะบันทึกนี้เป็นรายการของเครื่องไหน,"00")
ได้กำหนดเป็น iMachineNumber = format([MC],"00")
[MC] คือ Feild ที่ใช้ในการรับค่าของเครื่องจักร เช่น M/C1, M/C2 เป็นต้น

ผลลัพธ์ที่ได้เกิด Debug คือ
1. ฟังก์ชั่นที่ไม่ได้กำหนด 'cLong' ในนิพจน์
2. iMachineNumber = format([MC],"00") หาค่าไม่ได้

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