| |
|
|
| | Здравствуйте!
У меня старый сканер штрих-кодов. После сканирования фокус переходит в след поле, а мне нужно его вернуть (или оставить) в поле сканирования.
SetFocus не помогает. Пробовала использовать и вспомогательное поле. По всей видимости все что пишу, происходит до Enter, запрограммированнного в сканере.
Подскажите, кто знает.
СПАСИБО! | |
| |
| |
| |
|
|
| | Попробуйте в access сервис----параметры----клавиатура -------переход при нажатии enter=нет | |
| |
| |
| |
|
|
| | а кода Вы SetFocus
пишите --- у меня помогает.....
Поле1- для считывания.........
Private Sub Поле1_Change()
Поле0.SetFocus
End Sub
или
Private Sub Поле1_AfterUpdate()
Поле0.SetFocus
End Sub | |
| |
| |
| |
|
|
| | Пишу так, если Поле1-для считывания:
Private Sub Поле1_AfterUpdate()
Поле1.SetFocus
End Sub
т.е после обновления, если такой товар найден, он добавляется в накладную, если не найден - предлагается поиск по наименованию из списка.
Так вот если он найден, то фокус мне нужно оставить в этом же поле, т.е. подготовиться для считывания след товара.
Изменение в параметрах помогло, спасибо огромное. Хотелось бы, конечно, не лишать себя возможности пользоватся Enter, но как выход из безвыходной ситуации подойдет. | |
| |
| |
| |
|
|
| | Проверьте происходит ли событие AfterUpdate. AfterUpdate - происходит только когда вы руками в поле формы вводите данные, когда они туда попадают программно, то это событие не происходит.
Какая процедура определяет найден товар в списке или нет? В этой процедуре можно в случае когда товар найден у становить фокус в нужное поле? | |
| |
| |
| |
|
|
| | есть идиотская идея - использовать глобальную переменную :)
например, returnFocus - boolean
1) на некое событие повесить задание для неё значения true (например по нажатию кнопки "считать"- переведём фокус в поле для чтения и скажем "вернись потом")
2) на событие получения фокуса следующим полем проверяем - если нам сказано вернуться, то возвращаем фокус в нужное поле и меняем переменную в false. | |
| |
| |
| |
|
|
| | >Пробовала использовать и вспомогательное поле.
А как вы его пробовали?
Если вспомогательное поле (минимальных размеров) - следующее в переходе по Tab, то на его событии GotFocus можно вернуть фокус предыдущему полю или передать следующему.
Private Sub Text2_GotFocus()
If IsNull(Me.Text0) Then Me.Text0.SetFocus Else Me.Text3.SetFocus
End Sub | |
| |
| |
| |
|
|
| | Анатолий, так и пробовала вспомогательное поле. Но почему-то пишет "Невозможно перейти к указанному полю" (полю сканирования).
Олег, да я на этот код уже как на новогоднюю елку навешивала Me.H.SetFocus где только нужно и не нужно.
Событие AfterUpdate, если я правильно понимаю, происходит, т.к. запись добавлятся, и фокус переходит в след. поле.
Получается, чтобы я не написала - это все происходит до Enter.
С глобальной переменной не пробовала, пока.
Сканер этот все равно менять буду, читает очень плохо.
Пока обойдусь установкой в параметрах.
Еще раз , СПАСИБО. | |
| |
| |