คำสั่ง VB เพื่อย้ายตำแหน่ง Cursor



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

18 มิ.ย. 62 , 10:45:30
อ่าน 467 ครั้ง

Teeyai

  • สมาชิกไท.Access
  • กระทู้: 22

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

คำสั่ง VB เพื่อย้ายตำแหน่ง Cursor
« เมื่อ: 18 มิ.ย. 62 , 10:45:30 »


ตอนนี้ผมกำลังหัดเขียนโค้ด เพื่อทำโปรแกรมใช้งานเองในออฟฟิศครับ
ข้างล่างนี้คือโค้ดที่ผมใส่ใน Event Update ของ Textbox ชื่อ Text1(ชื่อผู้ใช้)

Private Sub Text1_AfterUpdate()
Dim Rs As Recordset
Set Rs = CurrentDb.OpenRecordset("Select * From UserClass Where UserName='" + Text1 + "';")

If Rs.RecordCount = 0 Then MsgBox " ผู้ใช้ชื่อ " + Text1 + " ไม่ได้รับอนุญาตให้ใช้งาน ": Text1 = "": Text2 = "": Exit Sub

End Sub

ความต้องการของผมคือ เวลาพิมพ์ชื่อผู้ใช้ที่ไม่มีในตารางฐานข้อมูลแล้วกดปุ่ม Enter ให้ขึ้นข้อความเตือนว่า "ผู้ใช้ชื่อนี้ไม่ได้รับอนุญาตให้ใช้งาน" แล้วก็สั่งเคลียร์ค่าในช่อง Text1 =""  หลังจากนั้น Cursor มันก็กระโดดไป Text Box ถัดไป ซึ่งในความเป็นจริงผมต้องการให้มันเด้งกลับไปที่ Text1 ที่เดิม เพื่อรอให้พิมพ์ชื่อผู้ใช้ใหม่ครับ แต่ไม่ทราบว่ามีคำสั่งสำหรับย้าย cursor กลับไปตำแหน่ง Text Box เดิมไหมครับ หรือถ้ามีวิธีอื่น ๆ อีกรบกวนด้วยครับ...

ขอบพระคุณคร้าบบบบ...

 

18 มิ.ย. 62 , 10:59:46
ตอบกลับ #1

ปิ่นณรงค์

: คำสั่ง VB เพื่อย้ายตำแหน่ง Cursor
« ตอบกลับ #1 เมื่อ: 18 มิ.ย. 62 , 10:59:46 »
ใส่ me.Text1.setFocus ครับ
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Teeyai

18 มิ.ย. 62 , 14:13:49
ตอบกลับ #2

Teeyai

  • สมาชิกไท.Access
  • กระทู้: 22

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: คำสั่ง VB เพื่อย้ายตำแหน่ง Cursor
« ตอบกลับ #2 เมื่อ: 18 มิ.ย. 62 , 14:13:49 »
Private Sub Text1_AfterUpdate()
Dim Rs As Recordset
Set Rs = CurrentDb.OpenRecordset("Select * From UserClass Where UserName='" + Text1 + "';")

If Rs.RecordCount = 0 Then
MsgBox " ¼Ùéãªéª×èÍ " + Text1 + " äÁèä´éÃѺ͹حҵãËéãªé§Ò¹ "
Text1 = ""
Text1.SetFocus
Exit Sub
End If

End Sub

ลองแล้วไม่ได้ครับ มันยังกระโดดไป Text2 อยู่ดีครับ
แต่ถ้าเป็น Event On Click ใช้ได้ครับ
Event after updated ใช้ไม่ได้อะครับ

 

18 มิ.ย. 62 , 15:19:08
ตอบกลับ #3

ปิ่นณรงค์

: คำสั่ง VB เพื่อย้ายตำแหน่ง Cursor
« ตอบกลับ #3 เมื่อ: 18 มิ.ย. 62 , 15:19:08 »
ถ้ามองตามเหตุการณ์จริงเมื่อ AfterUpdate แล้วมี MSGBOX มันจะลงไปที่ text2 อยู่แล้ว เราน่าจะกำหนดแบบนี้คับ

Private Sub Text1_AfterUpdate()
Dim Rs As Recordset
Set Rs = CurrentDb.OpenRecordset("Select * From UserClass Where UserName='" & Text1 & "';")

If Rs.RecordCount = 0 Then
MsgBox "ผู้ใช้ชื่อ" & Me.Text1 & " ไม่ได้รับอนุญาตให้ใช้งาน ", vbCritical, "ระบบตรวจสอบ"
Me.Text1 = null
Me.Text2.SetFocus
Me.Text1.SetFocus
Exit Sub
End If

End Sub
« แก้ไขครั้งสุดท้าย: 18 มิ.ย. 62 , 15:36:19 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Teeyai

18 มิ.ย. 62 , 21:54:30
ตอบกลับ #4

Teeyai

  • สมาชิกไท.Access
  • กระทู้: 22

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: คำสั่ง VB เพื่อย้ายตำแหน่ง Cursor
« ตอบกลับ #4 เมื่อ: 18 มิ.ย. 62 , 21:54:30 »
ขอบคุณมาก ๆ เลยครับ

 


บอร์ดเรียนรู้ Access สำหรับคนไทย