Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 31
1

Поиск по списку (не поле со списком)

17.12.2012, 00:07. Показов 1863. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет народ. У меня простой для access знающего человека вопрос.Е сть Форма отабражающая запись таблицы, на форме есть список который отображает все записи той же таблицы, как при клике на запись в списке найти эту запись для формы или другими словами сделать эту запись текущей для формы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2012, 00:07
Ответы с готовыми решениями:

Поиск в поле со списком
Уважаемые подскажите пожалуйста на примере как в форме 1 в поле со списком можно было б производить...

Поле со списком и поиск
Добрый день! Не могу понять почему не работает поле со списком в форме? По остальным полям все...

Поле со списком - Поиск контрагента
У меня программа на Access 2007. Возникла необходимость поиска контрагента из списка, т.е. в Форме...

Поиск в текстовом поле со списком
А можно ли при вводе данных в текстовом поле со списком сделать так чтоб --поиск шел через во...

10
267 / 267 / 4
Регистрация: 01.11.2011
Сообщений: 612
17.12.2012, 01:42 2
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Ваш_Список_AfterUpdate()
 
    Dim rs As Object
 
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[id] = " & Str(Nz(Me![Ваш_Список], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
0
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
17.12.2012, 02:33 3
Цитата Сообщение от andrey_ba Посмотреть сообщение
Visual Basic
1
2
Dim rs As Object
Set rs = Me.Recordset.Clone
Лучше
Visual Basic
1
2
Dim rs As Recordset
Set rs = Me.RecordsetClone
по крайней мере, в 2002
0
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
18.12.2012, 00:34 4
Используйте DoCmd.FindRecord
1
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
18.12.2012, 04:32 5
Цитата Сообщение от Михайло Посмотреть сообщение
Используйте DoCmd.FindRecord
Не самый лучший совет. Макрокоманды в форме это лишний слой между данными (рекордсет формы) и их визуальным отображением. Макрокоманды не учитывают всех свойств данных, в частности индексов. И лучше их не использовать вообще. Фактически нет серьезных аргументов за использование макрокоманд вместо свойств и методов рекордсета.
1
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 31
18.12.2012, 10:41  [ТС] 6
Ладно сейчас по смотрю чё к чему
0
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 31
18.12.2012, 12:00  [ТС] 7
ругается мол ядро бд не распознаёт id если применить выше описаный код. вообщем там надо на форме товарыР сделать так что бы данные в полях формы менялись при клике по сторке списка простите если повторяюсь вот бд
Вложения
Тип файла: rar склад строй материалов1.rar (161.3 Кб, 33 просмотров)
0
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
18.12.2012, 13:48 8
Ты, часом, не вставил код как есть? Это примерный прототип (а что ещё могло быть без конкретной базы?), условие в FindFirst записывается по правилам where! (Базу твою не смотрел, 2010 офиса не имею)

Добавлено через 3 минуты
Цитата Сообщение от andrey_ba Посмотреть сообщение
Visual Basic
1
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
И, кстати говоря, правильнее, наверное, не .eof, а .nomatch
1
267 / 267 / 4
Регистрация: 01.11.2011
Сообщений: 612
18.12.2012, 14:28 9
Visual Basic
1
2
3
4
5
6
7
Private Sub Список21_Click()
Dim rs As Recordset
 
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Код_товара] = " & Str(Nz(Me!Список21, 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
18.12.2012, 14:46 10
Цитата Сообщение от iifat Посмотреть сообщение
И, кстати говоря, правильнее, наверное, не .eof, а .nomatch
+1
Цитата Сообщение от Справка
Методы FindFirst, FindLast, FindNext, FindPrevious
...
Если запись, удовлетворяющая заданным условиям, не обнаружена, то состояние указателя текущей записи становится неопределенным, и свойству NoMatch присваивается значение True.
Я в последнее время предпочитаю такой поиск (весь код в одной строке)
Visual Basic
1
Me.Recordset.FindFirst "Код_товара=" & Nz(Me!Список21, 0)
Отличие работы данного кода, от ранее предложенного, в том, что если запись, удовлетворяющая условию, не обнаружена, то переход в форме осуществляется на первую запись.
0
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 31
18.12.2012, 21:01  [ТС] 11
minob спасибо именно то, что надо. Вариацию кода от andrey_ba не проверял. Всем спасибо
0
18.12.2012, 21:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2012, 21:01
Помогаю со студенческими работами здесь

Поиск по критериям и отбор в поле со списком
Доброго времени суток. Недавно занялся созданием базы для работы. Вроде со скрипом все получалось,...

Как организовать поиск в поле со списком
Помогите пожалуйста начинающему. Как сделать так чтобы в поле со списком поиск записи для...

Поиск с любой части слова в поле со списком
Добрый день. Как сделать поиск в поле со списком с любой части слова. Например, в списке улиц в...

Поиск данных из таблицы используя поле со списком(содержащего даты )
Здравствуйте!У меня есть БД "Турагенство" и мне нужно найти путевку по дате из выпадающего списка...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru