ขอแนวคิดในการออกจาก Loop
กระทู้เก่าบอร์ด อ.Yeadram

 1,088   2
URL.หัวข้อ / URL
ขอแนวคิดในการออกจาก Loop

ลักษณะการทำงานเป็นแบบ วน Loop ไปเรื่อยๆ ความต้องการคือเมื่อ User
กดแป้นพิม์ สมมุติว่า A ให้ Loop หยุดการทำงานและออกจาก Program ครับ
จะเขียนดักแบบไหนอย่างไรดีครับ

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

1 @R20088
ปกติถ้าฟอร์มมีทั้ง textbox หรือคอลโทรลอื่นๆที่สามารถรับทราบการกดคีย์ได้ event เกี่ยวกับคีย์จะเกิดกับคอลโทรลเหล่านั้น ตัวฟอร์มเองจะไม่รับทราบการกดคีย์ เราต้องกำหนด KeyPreview property ของฟอร์มให้เป็น Yes ไว้ ฟอร์มถึงจะรับทราบได้

อีกอย่าง ในการวนลูป ส่วนใหญ่แล้วโค้ดจะใช้งาน CPU ไปตลอด ดังนั้นแม้เรากดคีย์ แต่ Access จะไม่มีเวลาว่างมารับทราบการกดคีย์ได้ คำสั่ง Doevents จะทำให้ Access ปลดปล่อย CPU ไปให้งานอื่นๆ(ภายใน Access เอง)ได้ใช้ CPU บ้าง จนกว่าจะไม่มีงานอื่นแล้ว โค้ดของเราก็จะทำงานต่อไป ดังนั้นเราต้องใส่ DoEvents แทรกในลูปเอาไว้ด้วย

อันนี้คือตัวอย่างโปรแกรม หน้าฟอร์มมีลาเบลชื่อ scText และปุ่ม Command1 เมื่อกดปุ่ม Command1 แล้วโปรแกรมจะวนแสดงตัวเลขเพิ่มที่ละ 1 ออกจาก scText เมื่อเรากดคีย์ "A" การแสดงก็จะหยุด

Option Compare Database
Option Explicit

Dim s As Boolean

Private Sub Command1_Click()
    Dim i As Long
    s = False
    For i = 1 To 65535
        Me.scText.Caption = CStr(i)
        DoEvents
        If s Then Exit For
    Next i
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = Asc("a") Then s = True
End Sub
2 @R20093
OK   Work ครับ
ขอบคุณครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.4961s