กระทู้เก่าบอร์ด อ.Yeadram
2,445 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 แล้วก็กลับไปยิงบาร์โค้ดได้ต่อ
ขั้นตอนประมาณนี้ครับผม พอมีทางไหมครับผม
ใช้ยิงบาร์โค้ดในการคิดเงิน แต่ติดปัญหาตรงที่ว่า เวลาเจอของมากกว่า 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
ปรับใช้ดูครับ
ตัวอย่างผมใช้ปุ่ม 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 ตัวเลขด้านขวาคีย์บอร์ด ต้องใช้รหัสอะไรครับ
รบกวนถามต่ออีกนิดครับว่า ถ้าเป็นปุ่มตรง Num ตัวเลขด้านขวาคีย์บอร์ด ต้องใช้รหัสอะไรครับ
6 @R22217
อยากทราบเพิ่มเติมด้วยครับ น่าจะเป็นประโยชน์ในการใช้งานมากๆครับ โดยไม่ต้องมาใช้เมาส์ รอฟังด้วยคนครับ
7 @R22223
ทำตามคุณ TTT แล้วไปกดหนดค่าการทำงนใน macro ครับ
ปุ่มไหนกำหนดได้บ้างดูตามรูปครับผม
อยากให้ฟอร์มไหนทำงาน ก็เอาโค้ดไปฟังหน้านั้นครับ เมื่อรับค่าคีย์บอร์ดจะทำงานตามที่กำหนดไว้ครับ

ทำตามคุณ TTT แล้วไปกดหนดค่าการทำงนใน macro ครับ
ปุ่มไหนกำหนดได้บ้างดูตามรูปครับผม
อยากให้ฟอร์มไหนทำงาน ก็เอาโค้ดไปฟังหน้านั้นครับ เมื่อรับค่าคีย์บอร์ดจะทำงานตามที่กำหนดไว้ครับ
8 @R22240
ผมลองทำตามคุณ TTT แล้ว ใช้งานได้แค่ปุ่ม F12
ผมลองใช้งานปุ่มอื่นแล้วไม่ทำงานครับ เช่น F1 / Insert / Delete อะไรพวกนี้ครับ
รบกวนถามครับ
ผมลองใช้งานปุ่มอื่นแล้วไม่ทำงานครับ เช่น F1 / Insert / Delete อะไรพวกนี้ครับ
รบกวนถามครับ
9 @R22249
รอด้วยคนครับ
10 @R22251
ค่าของ KeyCode ให้ใช้ชื่อของค่าคงที่ซึ่งถูกกำหนดไว้ให้แล้วในระบบ โดยจะมีชื่อขึ้นต้นว่า vbKey... ดูชื่อเหล่านี้ได้จาก https://msdn.microsoft.com/en-us/library/aa243025(v=vs.60).aspx
11 @R22252
เห็นด้วยตามความเห็นอ.สันติสุขครับ
เช่น vbKeyNum0
เช่น vbKeyNum0
12 @R22253
ตัวอย่างการใช้งานจ้า
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF2
<>
Case vbKeyF3
<>
...
End Sub
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
ต่อไปก็ประยุกต์เองนะคะ
หากจะใช้เป็น 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 คีย์สะดวกมากๆครับในการใช้งานกับโปรแกรมครับ
ขอบคุณมากๆครับ
เป็นประโยชน์ที่สุด ลดการใช้งาน เมาส์ ให้ใช้แต่คีย์บอร์ดหรือ Numric คีย์สะดวกมากๆครับในการใช้งานกับโปรแกรมครับ
ขอบคุณมากๆครับ
15 @R22262
ขอบคุณครับบบบบบบ
Time: 0.3877s