Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как обрабатывать событие onchange через 0.5 секунд - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как обрабатывать событие onchange через 0.5 секунд (Макросы/Sub)
Как обрабатывать событие onchange через 0.5 секунд
PATRI0T Дата: Среда, 13.03.2019, 18:55 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 4 ±
Замечаний: 0% ±

Excel 2013
Добрый день.
На форме в ексель есть поле, куда вводится число (ID заказа в БД).
По событию Onchange запускается процедура, которая ищет что-то в базе данных, и подставляет результат рядом, в эту же форму. Как сделать так, чтоб запросы шли не мгновенно, а спустя, допустим, полсекунды после окончания ввода?
спасибо..
 
Ответить
СообщениеДобрый день.
На форме в ексель есть поле, куда вводится число (ID заказа в БД).
По событию Onchange запускается процедура, которая ищет что-то в базе данных, и подставляет результат рядом, в эту же форму. Как сделать так, чтоб запросы шли не мгновенно, а спустя, допустим, полсекунды после окончания ввода?
спасибо..

Автор - PATRI0T
Дата добавления - 13.03.2019 в 18:55
bmv98rus Дата: Среда, 13.03.2019, 19:29 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4107
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
PATRI0T, Весьма странное желание , просто интересно зачем? И что будет происходить в эти пол секунды?
Sleep or Wait


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеPATRI0T, Весьма странное желание , просто интересно зачем? И что будет происходить в эти пол секунды?
Sleep or Wait

Автор - bmv98rus
Дата добавления - 13.03.2019 в 19:29
PATRI0T Дата: Четверг, 14.03.2019, 11:51 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 4 ±
Замечаний: 0% ±

Excel 2013
так и знал, что нужно подробнее описать )

пользатель вводит туда ID - 4-5 цифр. и с вводом каждой цифры происходит событие Onchange и соотвественно, делается запрос к базе.
Я хочу, чтоб запрос произошел автоматически, без нажатия доп. клавиш, но только после того, как будет введен ID заказа полностью.
По колву цифр нельзя определить, получается, просто по времени.. пользователь закончил вводить - всё, можно делать запрос.

полагаю, может можно сделать это через глобальную переменную, туда запиывать время и как-то это все обрабатывать. но что-то пахнет граблями
 
Ответить
Сообщениетак и знал, что нужно подробнее описать )

пользатель вводит туда ID - 4-5 цифр. и с вводом каждой цифры происходит событие Onchange и соотвественно, делается запрос к базе.
Я хочу, чтоб запрос произошел автоматически, без нажатия доп. клавиш, но только после того, как будет введен ID заказа полностью.
По колву цифр нельзя определить, получается, просто по времени.. пользователь закончил вводить - всё, можно делать запрос.

полагаю, может можно сделать это через глобальную переменную, туда запиывать время и как-то это все обрабатывать. но что-то пахнет граблями

Автор - PATRI0T
Дата добавления - 14.03.2019 в 11:51
_Boroda_ Дата: Четверг, 14.03.2019, 12:08 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А если есть номера 123 и 1234. Пользователь вводит 123 и у него вылезает информация. А нужно для 1234. А пользователь увидел, что что-то вылезло, обрадовался и не проверил
Думаю, что нужно чем-то, например, нажатием Ентер, Таб, пробела или еще чего, обозначать окончание ввода и запускать запрос


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА если есть номера 123 и 1234. Пользователь вводит 123 и у него вылезает информация. А нужно для 1234. А пользователь увидел, что что-то вылезло, обрадовался и не проверил
Думаю, что нужно чем-то, например, нажатием Ентер, Таб, пробела или еще чего, обозначать окончание ввода и запускать запрос

Автор - _Boroda_
Дата добавления - 14.03.2019 в 12:08
PATRI0T Дата: Четверг, 14.03.2019, 13:57 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 4 ±
Замечаний: 0% ±

Excel 2013
да, наверное так действительно будет правильнее.. спасибо.
 
Ответить
Сообщениеда, наверное так действительно будет правильнее.. спасибо.

Автор - PATRI0T
Дата добавления - 14.03.2019 в 13:57
bmv98rus Дата: Четверг, 14.03.2019, 14:08 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4107
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Обычно такое требуется при формировании списка для выбора или …
Можете попробовать так
[vba]
Код
Public start As Double
Private Sub TextBox1_KeyUpByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     pauseTime = 0.5
    start = Timer
    Do While Timer < start + pauseTime
        DoEvents
    Loop
    If Timer >= start + pauseTime Then
        Call YourProcedure
    End If
End Sub
[/vba]


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Четверг, 14.03.2019, 14:28
 
Ответить
СообщениеОбычно такое требуется при формировании списка для выбора или …
Можете попробовать так
[vba]
Код
Public start As Double
Private Sub TextBox1_KeyUpByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     pauseTime = 0.5
    start = Timer
    Do While Timer < start + pauseTime
        DoEvents
    Loop
    If Timer >= start + pauseTime Then
        Call YourProcedure
    End If
End Sub
[/vba]

Автор - bmv98rus
Дата добавления - 14.03.2019 в 14:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как обрабатывать событие onchange через 0.5 секунд (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!