Hot key ครับ
กระทู้เก่าบอร์ด อ.Yeadram

 2,275   15
URL.หัวข้อ / URL
Hot key ครับ

มีคำสั่งที่ให้กดปุ่มที่ต้องการไหมครับเช่นกด F4 แล้วมีกรอบเด้งขึ้นมาให้ใส่ข้อมูลไปในฟิลข้อมูลที่ต้องการครับ

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

1 @R22201
ผมว่าแทนที่จะกดปุ่ม แบบ hotkey เพื่อเรียกฟอร์มย่อยขึ้นมาป้อนข้อมูลแบบ popup   ก็เปลี่ยนเป็นคลิกปุ่ม ไม่ดีกว่าหรือ
2 @R22202
ตอนนี้ผมกำลังเขียนโปรแกรมคิดเงินครับ มือใหม่
ใช้ยิงบาร์โค้ดในการคิดเงิน แต่ติดปัญหาตรงที่ว่า เวลาเจอของมากกว่า 1 ชิ้น จะต้องมาใช้เม้าคลิกในช่องจาก 1 เป็นจำนวนที่ต้องการ

แล้วต้องมาคลิกที่ช่องบาร์โค้ดอีกที ทำให้ขั้นตอนมันยุ่งยากครับ แต่ถ้าสามารถใช้แต่คีย์บอร์ดเช่นกด F5 ให้เป็น Popup ของฟิลจำนวนขึ้นมา แค่ใส่ตัวเลขแล้ว enter แล้วก็กลับไปยิงบาร์โค้ดได้ต่อ

ขั้นตอนประมาณนี้ครับผม พอมีทางไหมครับผม
3 @R22204
ถ้าจะใช้ Hotkey เป็น F ต่างๆ จะชนกับของตัวโปรแกรม MS Access เอง ต้องทำหลายขั้นตอนหน่อยนะครับ
ตัวอย่างผมใช้ปุ่ม F12 ซึ่งหากกดจะเป็นการเรียกหน้าต่าง Save As ของ MS Access ขึ้นมา

1. ยกเลิกปุ่ม F12
เขียน Macro (Autokeys)

- สร้างคำสั่ง Macro ขึ้นใหม่ > Add New Action > เลือกเป็น
        Submacro: {F12}
             Beep ' หรือปล่อยว่าไว้ไม่ต้องใส่อะไรก็ได้
        End Submacro

- เซฟ Macro โดยตั้งชื่อว่า Autokeys
- เปิดโปรแกรม แล้วเปิดใหม่ เวลากดปุ่ม F12 จะไม่ตอบสนองอะไร

2. ที่มุมมองออกแบบของฟอร์ม Property > Event > Key Preview: Yes

3. ที่ Property > Event > On Key Down : เขียนโค๊ดดังนี้:
'Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 123 Then                    
        Dim i As String                    
        i = InputBox("กรุณาใส่จำนวน", "จำนวนชิ้น")                    
        If i & "" <> "" Then                    
            If IsNumeric(i) Then                    
               Me.Text1 = Val(i)                    
            Else                    
               MsgBox "กรุณาใส่เป็นตัวเลขเท่านั้น", , "จำนวนตัวเลข"          
            End If                    
        End If                    
    End If                    
'End Sub

ปรับใช้ดูครับ
4 @R22205
คุณ TTT สุดยอดมากๆครับ ทำได้แล้วครับ สะดวกมากๆครับตอนนี้ กด F12 ใส่จำนวนสินค้า กลับมาคีบาร์โค้ดต่อได้ครับ

ขอบคุณมากๆๆๆครับบบบ
5 @R22208
ต้องการพอดีเลยครับ
รบกวนถามต่ออีกนิดครับว่า ถ้าเป็นปุ่มตรง Num ตัวเลขด้านขวาคีย์บอร์ด ต้องใช้รหัสอะไรครับ
6 @R22217
อยากทราบเพิ่มเติมด้วยครับ น่าจะเป็นประโยชน์ในการใช้งานมากๆครับ โดยไม่ต้องมาใช้เมาส์ รอฟังด้วยคนครับ
7 @R22223


ทำตามคุณ TTT แล้วไปกดหนดค่าการทำงนใน macro ครับ
ปุ่มไหนกำหนดได้บ้างดูตามรูปครับผม

อยากให้ฟอร์มไหนทำงาน ก็เอาโค้ดไปฟังหน้านั้นครับ เมื่อรับค่าคีย์บอร์ดจะทำงานตามที่กำหนดไว้ครับ
8 @R22240
ผมลองทำตามคุณ TTT แล้ว ใช้งานได้แค่ปุ่ม F12

ผมลองใช้งานปุ่มอื่นแล้วไม่ทำงานครับ เช่น F1 / Insert / Delete อะไรพวกนี้ครับ

รบกวนถามครับ
9 @R22249
รอด้วยคนครับ
10 @R22251
ค่าของ KeyCode ให้ใช้ชื่อของค่าคงที่ซึ่งถูกกำหนดไว้ให้แล้วในระบบ โดยจะมีชื่อขึ้นต้นว่า vbKey... ดูชื่อเหล่านี้ได้จาก https://msdn.microsoft.com/en-us/library/aa243025(v=vs.60).aspx
11 @R22252
เห็นด้วยตามความเห็นอ.สันติสุขครับ
เช่น vbKeyNum0
12 @R22253
ตัวอย่างการใช้งานจ้า
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
           Case vbKeyF2
                   <>
           Case vbKeyF3
                   <>
           ...
End Sub
13 @R22254
อ้อ ลืมไป...
หากจะใช้เป็น Combination Key ก็ตามนี้นะจ๊ะ เจ๊จะบอก

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim intShiftDown As Integer
Dim intAltDown As Integer
Dim intCtrlDown As Integer
    intShiftDown = (Shift And acShiftMask) > 0
    intAltDown = (Shift And acAltMask) > 0
    intCtrlDown = (Shift And acCtrlMask) > 0

    Select Case KeyCode
            Case (vbKeyF3 And intAltDown)    'หมายถึงกดปุ่ม Alt + F3
    End Select
End Sub
ต่อไปก็ประยุกต์เองนะคะ
14 @R22260
ขอบคุณทุกท่านมากๆครับ
เป็นประโยชน์ที่สุด ลดการใช้งาน เมาส์ ให้ใช้แต่คีย์บอร์ดหรือ Numric คีย์สะดวกมากๆครับในการใช้งานกับโปรแกรมครับ

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