Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
sergeos
206 / 23 / 5
Регистрация: 12.06.2012
Сообщений: 205
1

Вызов процедуры по таймеру. (Через н-ное время, после какого-то события)

16.06.2012, 01:51. Просмотров 1563. Ответов 6
Метки нет (Все метки)

Народ, привет!
На форме есть текстбокс, при вводе символов, в который меняется Recordset для ListBox'a ну и соответственно в ListBox выводятся записи на условии, которое пишется в текстбоксе.
Ну образно примерно так выглядит:
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Text1_Change()
    Dim sTemp      As String
    Dim sSQL        As String
    
    sTemp = Nz(Text1.Value)
    sSQL = "SELECT t.f, FROM t WHERE t.f Like '*" & sTemp & "*'"
    List1.RowSource = sSQL
End Sub
в общем, хочу сделать задержку для смены RowSource. Есть ли какие-то средства в Access'e чтобы организовать таймер? Т.е. реально нужно, чтобы RowSource у List1 менялся только спустя 1сек. после Text1 Change, ну примерно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Text1_Change()
    Dim sTemp      As String
    Dim sSQL        As String
    RunTimer
    If MyTimer > 1 Then
        sTemp = Nz(Text1.Value)
        sSQL = "SELECT t.f, FROM t WHERE t.f Like '*" & sTemp & "*'"
        List1.RowSource = sSQL
    End If
End Sub
 
Private Sub RunTimer()
    ...
End Sub
Если кто работал в этом направлении, можно ли чтото сделать поинтереснее?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2012, 01:51
Ответы с готовыми решениями:

Вызов процедуры по таймеру через н-ное время С Builder
Всем привет. У меня такой вопрос как сделать так чтоб полсле определенного времени например...

Вызов процедуры по таймеру
Нужно по таймеру вызывать процедуру Show(отрисовывает линию в paintbox1), а процедура FindPut...

Вызов процедуры события
Наверное, на примере понятнее будет: Вот есть у меня 2 процедуры, совершающиеся по клику по...

Вызов события после загрузки
Есть блок с миниатюрами картинок. Полноразмерных картинок в коде еще нет. При наведении на этот...

Как в ADO в таблице с логическим типом изменить значение с true на false после какого либо события?
У меня в Delphi есть таблица "Список номеров". Мне нужно, чтобы при заключении договора в в таблице...

6
mobile
Эксперт MS Access
24629 / 13437 / 2853
Регистрация: 28.04.2012
Сообщений: 14,734
16.06.2012, 02:26 2
Лучший ответ Сообщение было отмечено как решение

Решение

Апишная функция Sleep подойдет

Объявление
Visual Basic
1
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Использование с задержкой на секунду
Visual Basic
1
Sleep 1000
3
sergeos
206 / 23 / 5
Регистрация: 12.06.2012
Сообщений: 205
16.06.2012, 13:27  [ТС] 3
mobile, ещё у формы есть событие Form_Timer(). Короче, что получилось:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Option Explicit
Private bUpdateRS    As Boolean
 
Private Sub Text1_Change()
    Me.IntervalTime = 1000
    bUpdateRS = True
End Sub
 
Private Sub Form_Timer()
    If bUpdateRS Then
        bUpdateRS = Not bUpdateRS
        Me.IntervalTime = 0
        UpdateRS
    End If
End Sub
 
Private Sub UpdateRS()
    Dim sTemp      As String
    Dim sSQL        As String
    
    sTemp = Nz(Text1.Value)
    sSQL = "SELECT t.f, FROM t WHERE t.f Like '*" & sTemp & "*'"
    List1.RowSource = sSQL
End Sub
и всё. теперь поиск не сразу срабатывает после каждого нажатия в текстбоксе, а спустя какойто период, чтобы пользователь успевал ввести не один, а несколько символов.
0
andrey_ba
266 / 266 / 4
Регистрация: 01.11.2011
Сообщений: 612
16.06.2012, 15:50 4
sergeos, а также у поля есть событие после обновления, ввели слово, нажали ввод и воля, так же можно было код поиска привязать к кнопки нажал нашло и задержка будет такая как надо пользователю, а не так как программа решит, может я кофе пью в данный момент и чтобы мне слово ввести надо 5, 10 или 15 минут
0
Сергей1980
502 / 335 / 12
Регистрация: 17.12.2009
Сообщений: 782
16.06.2012, 17:26 5
Цитата Сообщение от mobile Посмотреть сообщение
Код Visual Basic
1
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
А если у человека виндовс и офис 64 битовый?
0
mobile
Эксперт MS Access
24629 / 13437 / 2853
Регистрация: 28.04.2012
Сообщений: 14,734
16.06.2012, 17:45 6
Цитата Сообщение от Сергей1980 Посмотреть сообщение
А если у человека виндовс и офис 64 битовый?
Есть соответствующие процедуры и для 64-битной версии. С помощью условной компиляции, сравнивая версии винды, можно использовать нужную
0
sergeos
206 / 23 / 5
Регистрация: 12.06.2012
Сообщений: 205
16.06.2012, 18:05  [ТС] 7
Та не, народ, API не сильно хотелось.
Я решил свой вопрос, как уже описал выше.
0
16.06.2012, 18:05
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2012, 18:05

Вызов события hover через код
Здравствуйте, прошу помочь с решением проблемы, с которой бьюсь последние пару дней. Пишу...

Вызов события после нажатия определённой кнопки
Здравствуйте. Подскажите, как можно вызвать событие после нажатия определённой кнопки?

Вызов процедуры через ComboBox
Всем доброго вечера! У меня такой вопрос возможен ли вызов процедур кнопок через комбобокс , типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru