แสดงกระทู้

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 - MAKI

หน้า: 1 2 [3]
33



ผมได้ลองสร้างระบบ ตอกบัตรของพนักงานในการเข้างาน มาให้ดูเป็นแนวทางคับ
1.ก่อนใช้งานให้ ใส่ รหัส Barcode ของพนักงานแต่ละคน ในตาราง tblEmployee ก่อนนะครับ ผมใส่ไว้ให้ 2 ไอดีคือ 01 และ 02
2.เมื่อเราแสกน Barcode โปรแกรมจะทำการ Enter อัตโนมัติ
3.ระบบจะบันทึกข้อมูลเข้าสู่ตารางทันทีถ้า Barcode นั้นมีอยู่จริง ถ้าไม่มีอยู่จะมีการแจ้งเตือนให้ครับ
4.รายละเอียดชื่อพนักงานและเวลาในการตอกบัตรนั้นจะแสดงขึ้นมาเมื่อแสกน Barcode ครับ และจะหายไปเองเมื่อครบ 5 วินาที
5.ผมได้สร้างนาฬิกา และ แสดงวันที่ เรียลไทม์ ไว้บนฟอร์มด้วย
6.โดยปกติ พนักงานอาจจะเผลอไปแสกน วันนึงหลายๆ ครั้ง แต่ผมได้สร้างคิวรี่ตรวจเช็คเวลาที่แสกนอันแรกสุดของวันมาแสดงให้ครับ
7.มีระบบสถานะแสดงไว้ให้ด้วยกรณีที่ผิดพลาดก็จะมีข้อความแสดงแจ้งเตือนใหักับพนักงานได้ทราบครับ

ลองดูนะครับ ไม่รู้ได้หรือเปล่า
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

34
ใช้การกำหนด Events ช่วยด้วยก็ได้คับ
สมมุติ textbox สุดท้ายที่กรอกข้อมูลชื่อ Text4 เสร็จ Cursor จะ Focus ที่ ปุ่ม Cmb_Save ทันทีครับ
และ พอครบ 5 วินาที มันจำเรียกใช้ คำสั่งบันทึกจาก  Cmb_Save_Click() ครับ ซึ่งปุ่มเซฟถ้ากดเองก็เซฟได้เหมือนกัน
หรือจะตั้ง 5 วินาทีแล้วบันทึกได้เหมือนกันคับ ตัวอย่างโค้ดด้านล่าง

Private Sub Cmb_Save_Click() 'คำสั่งจากปุ่มบันทึกที่มีอยู่แล้วถ้าเรากดบันทึกก็ได้เหมือนกัน
DoCmd.RunCommand acCmdSaveRecord
End Sub

Private Sub Text4_Exit(Cancel As Integer) เมื่อเสร็จการกรอกการทำงานบน textbox สุดท้าย
IF not isnull(Me.text1) And not isnull(Me.text2) And  not isnull(Me.text3) And  not isnull(Me.text4) Then 'เช็คว่ากรอกครบทุก textbox แล้วหรือไม่
Me.Cmb_Save.SetFocus
Dim OnTime As Date
OnTime = Now()
While DateDiff("s", OnTime, Now) < 6 'น้อยกว่า 6 อันสุดท้ายสุดคือ 5 วินั้นเอง
Wend

Call Cmb_Save_Click 'พอครบเงื่อนไขด้านบนจะเรียกคำสั่งบันทึกมาใช้งานคับ
End if
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

35
ผมสมมุติ ID = textbox ชื่อ ID  datatype เป็น Number
           วันที่ลง = textbox ชื่อ วันที่ลง               datatype เป็น DateAndTime

1.สร้าง Sub ขึ้นมาใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
Sub AutoRunnumber()
Dim MaxNum As Integer
MaxNum = Nz(DMax("ID","tb_เลขจอง"))

If MaxNum = 0 Then
MaxNum = 1
Else
MaxNum = MaxNum + 1
End If
Me.ID = MaxNum
End Sub

2.กำหนด Event AfterUpdate ของ textbox  วันที่ลง  ดังนี้
Private Sub วันที่ลง_AfterUpdate()
If Not IsNull(Me.วันที่ลง) Then
Call AutoRunnumber
End If
End Sub

การใช้งาน
เมื่อเราระบุวันที่ ระบบจะสร้างลำดับขึ้นมาให้เราอัตโนมัติ ถึงเราจะลบ Record ทิ้งไป เมื่อเรากด เพิ่ม Record ใหม่ มันก็จะรันต่อจากเลขที่มากสุด มา + 1 เสมอครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

36
เปลี่ยนจาก Autorun เป็นเขียนมาโครขึ้นมาใช้เองแทนครับ
ตัวอย่างจากกระทู้นี้เลย > อยากได้ตัวอย่าง access การทำ running number แบบ ปี เดือน รันเลข 3 ตำแหน่ง มือใหม
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

37
ต้องใช้ฟอร์มกับคิวรี่ร่วมกันครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

หน้า: 1 2 [3]