powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выделить запись в listbox
12 сообщений из 12, страница 1 из 1
Выделить запись в listbox
    #37138830
Bro~
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
У меня следующая проблема:
На форме есть ListBox (список), который выводит текстовые данные. В качестве присоединённого столбца используются идентификаторы этих записей. Мне нужно программно выделить ту запись, которая содержит заданный пользователем текстовый фрагмент, то есть реализовать поиск по списку.
Возможно ли реализовать вышеописанный механизм?
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37138880
HVV83_Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bro~,

Код: plaintext
1.
2.
3.
4.
5.
For i =  0  To Me.lst.ListCount -  1 
    If Me.lst.ItemData(i) = ... Then
        Me.lst.SetFocus
        Me.lst.ListIndex = i
    End If
Next
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37138965
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Me.lst = DLookup("tbl", "ID_fld", "Text_fld LIKE '*" & s & "*'")
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37139243
Bro~
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HVV83_Vladimir , П-Л ,
Спасибо!

В разной мере изменил оба варианта, получилось так:
Код: plaintext
1.
2.
3.
4.
5.
6.
For i =  0  To Me.lst.ListCount -  1 
    If InStr( 1 , Me.lst.Column( 1 , i), Me.Поле13.Value,  1 ) <>  0  Then
        Me.lst.SetFocus
        Me.lst.ListIndex = i
        Exit For
    End If
Next

Код: plaintext
Me.lst = DLookup("[ID]", "Parameters", "[ParamName] LIKE '*" & Me.Поле13.Value & "*'")

Скорее всего выберу второй, так как показалось, что он побыстрее.
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37204519
slme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в каком событии нужно исполбзовать поиск?
после изменения текстового поля, по нажатию на кнопку, ... ????
подскажите плз:)
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37204653
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slmeв каком событии нужно исполбзовать поиск?
после изменения текстового поля, по нажатию на кнопку, ... ????
подскажите плз:)
В большой степени зависит от стратегии поиска. Вкратце так:
- если поиск должен формироваться по каждому введеному символу, то использовать событие Change (Изменение) и свойство Text поля.
- если поиск по сформированному значению из множества символов, то можно и по кнопке. И использовать как поисковый шаблон уже не свойство Text, а само значение поля (Value)
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37375434
slme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world,

Дабы не создавать лишних тем - решил задать вопрос здесь...
Прошу помочь:
Для варианта
Код: plaintext
Me.lst = DLookup("[ID]", "Parameters", "[ParamName] LIKE '*" & Me.Поле13.text & "*'")
(на событии Change)
возможно ли сделать так, чтобы при отсутствии совпадений(т.е. нет результатов поиска) выдавалось бы какое-нибудь сообщение, либо фокус бы устанавливался на 1-у строку списка.
Проблема в том, что на форме есть кнопка, по нажатию на которую открывается форма, берущая в качестве параметра id строки списка. И если нет выбранных строк, то при нажатии на эту клавишу выдается ошибка "Invalid use of Null". Как можно избежать такой ситуации?
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37375518
alvk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slme,

nz()
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37375555
slme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alvk, возможно это глупый вопрос, но все-же...
Вы имеете ввиду
Код: plaintext
nz(dlookup..., 0 )
если да, то такой вариант я пробовал - все равно выдает ошибку(при вводе текста, результатов по которому нет прото пропадает выделение списка, а следовательно при нажатии на кнопку выдается вышеупомянутая ошибка)
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37375561
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
slme...
Проблема в том, что на форме есть кнопка, по нажатию на которую открывается форма, берущая в качестве параметра id строки списка. И если нет выбранных строк, то при нажатии на эту клавишу выдается ошибка "Invalid use of Null". Как можно избежать такой ситуации?
вот в процедуре кнопки и проверьте, что строка выбрана,
и если невыбрана - и выдавайте своё сообщение...
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37375569
slme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л
Код: plaintext
Me.lst = DLookup("tbl", "ID_fld", "Text_fld LIKE '*" & s & "*'")


жаль что в таком лучае нет возможности посмотреть следующую запись, удовлетворяющую условию...(если несколько результатов поиска)
...
Рейтинг: 0 / 0
Выделить запись в listbox
    #37375579
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slmeП-Л
Код: plaintext
Me.lst = DLookup("tbl", "ID_fld", "Text_fld LIKE '*" & s & "*'")


жаль что в таком лучае нет возможности посмотреть следующую запись, удовлетворяющую условию...(если несколько результатов поиска)
Если это важно, то на форме можно сделать список, источником которого будут значения полученные в рекордсете. Т.е. вместо длукапа берется рекордсет и проходом по нему формируются строки списка.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выделить запись в listbox
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]