2015-06-04 2 views
1

Я знаю, что на этот вопрос был дан ответ, но у меня возникли проблемы с выполнением инструкций.Нажмите клавишу ввода для поиска значений текстового поля

This ответ кажется на месте, но я не могу понять, как установить кнопку по умолчанию в любых настройках вообще. Я просто не вижу этот параметр в меню свойств или в области «код представления».

Я не смог найти хороший пример того, как реализовать это в любом коде, оцените любую помощь.

Я пытался добавить следующий код Введите случае текстовое поле Поиск:

Me.Toggle47.DefaultValue = True 

Теперь, когда я нажимаю войти кнопка нажата, но фильтры не применяются.

Может ли это иметь какое-либо отношение к тому, что я сделал кнопку в Macro Builder? Если я иду в режиме конструктора и выделите кнопку Search можно увидеть на панели свойств, что команда по щелчку является встроенный макрос, в частности,

ApplyFilter Where Condition = [Name] Like "*" & [Forms]![2-Add/Edit Chemical]![txtNameSearch] & "*" 

Это вопрос, который я сделал это с помощью Macro Builder довольно чем в области «код представления»? Я не уверен, почему это так, но с другой стороны я новичок в MSA. Благодарю.

Screen of [property sheets

Form, subform

+0

Вы можете получить нам снимок экрана «другой» вкладки в окнах свойств? – Gene

+1

Ответ, на который вы ссылаетесь, относится к командной кнопке, которая имеет свойство '.Default', которое отличается от кнопки переключателя'.DefaultValue', который вы пытаетесь использовать. Я не думаю, что кнопка переключения имеет свойство '.Default', чтобы вы могли так использовать. –

+0

Если переключение на командную кнопку решит это, я бы определенно дал это выстрел. Я заглянул в игру с командой и не видел большой разницы. Эта разница кажется значительной. – user3564760

ответ

2

Вы можете установить KeyPress событий формы слушать-аут для ввода ключ нажат (Введите ключ, KeyAscii номер 13).

Private Sub Form_KeyPress(KeyAscii As Integer) 

    If _ 
     KeyAscii = 13 _ 
    Then 

     Me.Filter = "Name Like '*" & Me.txtNameSearch & "*'" 
     Me.FilterOn = True 

    Else 

     ' code you want to run when something other than Enter key is pressed 
     ' (probably leave this blank) 

    End If 

End Sub 

Я думаю, вы также должны будете установить Key Preview событие формы на Да, чтобы получить эту работу (справа в нижней части списка событий формы)

+0

Спасибо, это имеет смысл, к сожалению, я полагался на Macro Builder. Не могли бы вы указать мне в правильном направлении, чтобы получить аналогичные результаты, как щелчок «Macro Builder» >> Применить фильтр >> Где Условие: '[Name] Like« * »& [Forms]! [2-Add/Edit Chemical]! [ txtNameSearch] & "*" '. Я просто не уверен, когда, но только после функции «Тогда». – user3564760

+0

Можете ли вы опубликовать снимок экрана вашей формы? Каким образом будет применяться фильтр, это форма или подформа или что-то еще? –

+0

Просто разместил экран выше. Вид формы - «Разделить форму». Фильтр применяется к запросу, в котором перечислены все элементы. – user3564760

1

Я добавляю этот ответ, потому что я «Мы нашли несколько решений, которые все работают по-другому.

  • Ответ Matt Halls отлично работает и является тем, что я использую в настоящее время.

  • Другим решением, которое сработало, было преобразование кнопки поиска Search в кнопку поиска. По-видимому, командные кнопки имеют добавленное значение свойства Default, которое, если установлено на Yes, будет запущено, если нажата клавиша Enter. Это решение, похоже, ведет себя так же, как решение Мэтта.

  • Раннее решение, которое работало достаточно хорошо, состояло в том, чтобы скопировать триггер даже с кнопки поиска и поместить его в событие On Lost Focus. Это хорошо отразилось на добавленной (возможной) выгоде после нажатия Enter, полностью выделив текст текстового поля.

Я видел этот вопрос много, надеюсь, это просто для всех остальных.

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