2015-01-19 9 views
0

У меня есть напечатанный штрих-код, содержащий CTRL + A по определенным причинам в SAP. Я хочу, чтобы повторно использовать один и тот же штрих-код, но изменить CTRL + в TAB или ENTERзаменить {CTRL + A} на {TAB} или {ENTER}

Пока я подавить CTRL + с этим кодом на KeyDown:

If KeyCode = vbKeyA And Shift = acCtrlMask Then 'Catch Ctrl+A 
    KeyCode = 0 'Suppress keypress 

и вручную нажмите ввод.

Кто-нибудь знает, возможно ли это?

ответ

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 

Вы можете найти дополнительную помощь Abaout SendKeys на: MS Access Help

Так я считал, что некоторые компьютеры с ОС Windows 7/8/9 и Access 2007/2010/2013 можно заблокировать команду SendKeys по соображениям безопасности ,
В этом случае я предпочитаю использовать прямую команду, нужно, как:

me.controlfield.setfocus 

Другая возможность заключается в том (я использую обычно это последний)

DoCmd.GoToControl ("fieldname") 
+0

Спасибо, отлично работает! – Gerry

Смежные вопросы