由于SAP中的特定原因,我的打印条形码包含 CTRL + A 。我想重复使用相同的条形码,但将 CTRL + A 更改为 TAB 或 ENTER
现在我在keydown上使用此代码抑制 CTRL + A :
If KeyCode = vbKeyA And Shift = acCtrlMask Then 'Catch Ctrl+A
KeyCode = 0 'Suppress keypress
然后手动按回车键。
有人知道这是否可行?
答案 0 :(得分:1)
我尝试在带有字段的简单表单上重现您的问题。 通过访问某些事件到其他按钮或控件来使用键CTRL,因此我将主要表单放在此过程中:
Private Sub Form_KeyPress(KeyAscii As Integer)
Debug.Print KeyAscii
End Sub
您可以在字段(控件)或主窗体上使用事件KeyPress。这种情况需要主表格。
然后我尝试脉冲CTRL A并在中间窗口(在VBA上)看到数字为1
解决方案很简单,检测此KeyAscii并模拟SENDKEYS替代方案。
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 1 Then
SendKeys "{Enter}" 'or eny key that you need
End If
End Sub
您可以通过以下方式找到更多关于SendKeys的帮助:MS Access Help
所以我认为一些装有Windows 7/8/9和Access 2007/2010/2013的计算机可以出于安全原因锁定命令SendKeys。
在这种情况下,我更喜欢使用需要的直接命令:
me.controlfield.setfocus
其他可能性是(我通常最后使用)
DoCmd.GoToControl ("fieldname")