ถามหน่อยครับ เรื่องคุมการคีย์ข้อมูลซ้ำ
กระทู้เก่าบอร์ด อ.Yeadram

 1,162   4
URL.หัวข้อ / URL
ถามหน่อยครับ เรื่องคุมการคีย์ข้อมูลซ้ำ

จากกระทู้เก่าๆ ลองหาดูแล้ว แต่ก็ยังติดปัญหานิดนึงครับ
http://www.thai-access.com/yeadram_view.php?topic_id=213&PagePosition=1
=============================================
http://www.thai-access.com/yeadram_view.php?topic_id=1306&PagePosition=1
=============================================

ผมลองเอาโค้ดนี้มาลองทำดู

Private Sub txtNumber_AfterUpdate()
If Nz(DLookup("idNumber", "tbEmployee", "idNumber='" & Me.txtNumber& "'"), "zzzz") <> "zzzz" Then
    MsgBox "รหัสนี้มีในระบบแล้ว", vbCritical, "ข้อมูลผิด"
    cancel = True
End If
End Sub


ปรากฏว่า หลังจากคีย์เลขซ้ำแล้วกด Enter หรือเลื่อน Textbox ไปเป็นอันอื่น จะแสดงข้อความแสดง แต่หลังจากกด ปุ่มok ผมอยากให้ Cursor กลับมาอยู่ txtNumber เหมือนเดิมจนกว่าจะถูกต้องตามเงือนไข ถึงจะเลือนไปยังTextbox อื่นๆได้

ใส่ Me.txtNumber.SetFocus ตรงไหน ครับ
ขอบคุณครับ
จากกระทู้เก่าๆ ลองหาดูแล้ว แต่ก็ยังติดปัญหานิดนึงครับ
http://www.thai-access.com/yeadram_view.php?topic_id=213&PagePosition=1
=============================================
http://www.thai-access.com/yeadram_view.php?topic_id=1306&PagePosition=1
=============================================

ผมลองเอาโค้ดนี้มาลองทำดู
Private Sub txtNumber_AfterUpdate()
If Nz(DLookup("idNumber", "tbEmployee", "idNumber='" & Me.txtNumber& "'"), "zzzz") <> "zzzz" Then
    MsgBox "รหัสนี้มีในระบบแล้ว", vbCritical, "ข้อมูลผิด"
    cancel = True
End If
End Sub


ปรากฏว่า หลังจากคีย์เลขซ้ำแล้วกด Enter หรือเลื่อน Textbox ไปเป็นอันอื่น จะแสดงข้อความแสดง แต่หลังจากกด ปุ่มok ผมอยากให้ Cursor กลับมาอยู่ txtNumber เหมือนเดิมจนกว่าจะถูกต้องตามเงือนไข ถึงจะเลือนไปยังTextbox อื่นๆได้

ใส่ Me.txtNumber.SetFocus ตรงไหน ครับ
ขอบคุณครับ

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

1 @R19318
เอ้าพิมพ์ซ้ำอีก
2 @R19320
ต้องทำใน BeforeUpdate event ครับ ไม่ใช่ AfterUpdate event
3 @R19323
ขอบคุณครับคุณ สันติสุข

จากโค้ดนี้
Private Sub txtNumber_BeforeUpdate(Cancel As Integer)
If Nz(DLookup("idNumber", "tbEmployee", "[idNumber]= " & Me.txtNumber & ""), "zzzz") <> "zzzz" Then
    MsgBox "àÅ¢¹Õéà¤ÂÁÕÍÂÙèã¹ÃкºáÅéÇ", vbCritical, "Information"
    Cancel = True

End If
End Sub

เงื่อนไข
- ถ้าพิมพ์เลขซ้ำ ใช้งานได้ปกติ
- ถ้าพิมพ์เลขไม่ซ้ำ ใช้งานได้ปกติ
- ถ้าพิมพ์เลขแล้วลบออก(ปล่อยให้เป็นค่าว่าง) กด Enter ใช้งานไม่ได้ Error


อยากรู้ว่าผมพิมพ์ตกตรงไหนหรอครับ หรือว่าไม่ได้ใช้ function นี้ รบกวนช่วยแนะนำฟังก์ชั่นที่ใช้ที่ถูกต้องด้วยครับ ขอบคุณครับ
4 @R19324
ก็ตรวจสอบก่อนว่ามันว่างหรือเปล่าเท่านั้นเอง แต่ผมก็ไม่ค่อยแน่ใจนะ เพราะโค้ดเขียนมาใช้ idNumber แต่ภาพที่แสดงมันฟ้อง formula_number

Private Sub txtNumber_BeforeUpdate(Cancel As Integer)

If Nz(Me.txtNumber) then
    จะทำอะไรก็ว่าไป
End If

If Nz(DLookup("idNumber", "tbEmployee", "[idNumber]= " & Me.txtNumber & ""), "zzzz") <> "zzzz" Then
    MsgBox "àÅ¢¹Õéà¤ÂÁÕÍÂÙèã¹ÃкºáÅéÇ", vbCritical, "Information"
    Cancel = True

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