Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/362: Рейтинг темы: голосов - 362, средняя оценка - 4.55
1 / 1 / 1
Регистрация: 03.12.2010
Сообщений: 49

Создание формы для поиска записи из таблицы

01.05.2012, 21:02. Показов 77336. Ответов 76
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!!! У меня такая проблема не могу создать поиск по таблице значения введенного с формы. То есть есть форма "Ведите номер КПО" там всего 1 текстовое поле и 2 кнопки, при нажатии на кнопку ок должна выводится определенная запись из таблицы. Я в коде нечего не понимаю но по менющке еще кое что смогу покликать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.05.2012, 21:02
Ответы с готовыми решениями:

Создание формы поиска на сайте. Почему не выводится результат поиска при вводе символов в поле поиска?
Добрый день! Создаю форму поиска с всплывающими подсказками. Попробую, выложить строки кода, имеющие отношение к сути проблемы и темы. ...

Создание формы для поиска
Добрый день. Я только начала работать с программой access. Уже научилась создавать запросы и формы. Сама таблица предназначена для учета...

Создание формы для поиска
Доброго времени суток коллеги! Как то понадобилось мне создать форму для поиска по всем записям формы, похожую на встроенную...

76
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
02.05.2012, 13:11
Лучший ответ Сообщение было отмечено как решение

Решение

Пример простого поиска с использованием всего одной строки кода VBA и запроса на выборку:
Допустим, есть таблица Клиенты с полями КодКлиента, ОКПО, Наименование клиента.
-Создаем форму с полем со списком для выбора кода ОКПО, назовем его КритОКПО. В источник данных для него добавляем поля КодКлиента и ОКПО, при этом на экран выводим только ОКПО путем задания ширины полей подстановки (0см;2см). Т.о. поле со списком содержит значение кода клиента, а на экран выводится код ОКПО.
-Создаем запрос на основе таблицы Клиенты, для поля КодКлиента задаем условие отбора - равенство критерию отбора на форме. При этом, если критерий не задан: IsNull(Forms![Поиск]![КритОКПО]), то покажем все записи - "*". Т.о. условие отбора для поля КодКлиента:
Like IIf(IsNull(Forms![Поиск]![КритОКПО]);"*";Forms![Поиск]![КритОКПО])
-На форму поиска добавляем подчиненную ленточную форму на основе созданного запроса
-На событие После обновления поля со списком КритОКПО обновляем подчиненную форму:
Visual Basic
1
Me.ïîä÷èíåííàÿ_ôîðìà_Êëèåíòû.Form.Requery
Вложения
Тип файла: rar Очень простой поиск.rar (20.0 Кб, 3764 просмотров)
7
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
03.05.2012, 06:42
Лучший ответ Сообщение было отмечено как решение

Решение

А вот тоже самое, только без единой строчки кода и даже без использования запроса
Вложения
Тип файла: rar Супер простой поиск.rar (19.6 Кб, 5966 просмотров)
7
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
08.05.2012, 07:21
alvk, как????
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
08.05.2012, 13:47
Ameli, что как? "ловкость рук и никакого мошеннства" (c)
2
1 / 1 / 1
Регистрация: 03.12.2010
Сообщений: 49
09.05.2012, 03:30  [ТС]
Всем спасибо, очень помогли!!!
0
2643 / 1342 / 256
Регистрация: 25.10.2010
Сообщений: 2,196
14.05.2012, 12:30
Лучший ответ Сообщение было отмечено как решение

Решение

Ameli, если alvk не придумал никаких других хитростей, то в данном случае используются свойства объекта Подчиненная форма Клиенты ОСНОВНЫЕ ПОЛЯ и ПОДЧИНЕННЫЕ ПОЛЯ.
В свойство ОСНОВНЫЕ ПОЛЯ прописывается имя поля со списком (КритОКПО), а в свойство ПОДЧИНЕННЫЕ ПОЛЯ имя поля, по которому осуществляется фильтр (КодКлиента)
3
mpot
13.06.2012, 15:14
Очень крутой способ, спасибо!

Подскажите пожалуйста, как еще можно реализовать фильтр по множественному выбору значений одного поля?
То есть, если нужно выбрать сразу несколько кодов ОКПО?
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
13.06.2012, 15:38
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от mpot Посмотреть сообщение
как еще можно реализовать фильтр по множественному выбору значений одного поля?
То есть, если нужно выбрать сразу несколько кодов ОКПО?
К примеру создать на форме список(поставив в свойствах списка Несвязное выделение - Со связным выбором) с ОКПО.
И менять источник записей в зависимости от выбранных значений в списке.

См. приложение.
Зажав Ctrl выбираешь в списке несколько ОКПО, во втором списке данные будут отфильтрованы.
Вложения
Тип файла: rar db_ОКПО.rar (14.6 Кб, 2055 просмотров)
7
mpot
13.06.2012, 17:45
Agapov_stas, нереально круто.
Огромное спасибо.
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 3
21.06.2012, 11:10
Цитата Сообщение от Agapov_stas Посмотреть сообщение
К примеру создать на форме список(поставив в свойствах списка Несвязное выделение - Со связным выбором) с ОКПО.
И менять источник записей в зависимости от выбранных значений в списке.
Добрый день.
выбор работает только с числовым значением поля ОКПО. Можно ли сделать так, что бы ОКПО было текстовым с возможностью частичного ввода(LIKE"*ОКПО*")? Если не затруднит выложите пример.
0
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
21.06.2012, 15:28
Цитата Сообщение от vikroma Посмотреть сообщение
выбор работает только с числовым значением поля ОКПО. Можно ли сделать так, что бы ОКПО было текстовым
Да, можно.(см.вложение)
Цитата Сообщение от vikroma Посмотреть сообщение
с возможностью частичного ввода(LIKE"*ОКПО*")
Не понял...
ИЛИ выбирать несколько значений(хоть числовых, хоть текстовых, не важно)
ИЛИ при вводе(т.е. событие Change поля) значения в поле менять значения в списке..

Что именно?

Или Вы имеете ввиду, что:
1. Выбрать несколько значений ОКПО
2. Вводя во второе поле значение, фильтровать исходя из УЖЕ выбранных ОКПО?
Вложения
Тип файла: rar db_ОКПО.rar (12.7 Кб, 383 просмотров)
1
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
21.06.2012, 16:13
Если все же нужно, чтобы фильтрация одновременно была(т.е. по другому полю включая выделенные ОКПО), то вот..
Вложения
Тип файла: rar db_ОКПО_2.rar (14.0 Кб, 588 просмотров)
1
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 3
21.06.2012, 17:47
пока не разобрал почему у меня в первом случае не выходило с текстом.
я пытаюсь вместо окпо подставить значения из другой таблицы, но мне надо чтоб выбиралось значения содержащие часть данных. если брать пример из последней программы, мне надо чтоб были все ОКПО содержащие "ук" и "е". Или "1" и "2" и "3у".
С уважением Виктор.
0
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
21.06.2012, 18:37
Цитата Сообщение от vikroma Посмотреть сообщение
мне надо чтоб были все ОКПО содержащие "ук" и "е". Или "1" и "2" и "3у".
Не знаю, зачем, но так что ли?(см.вложение)
Вложения
Тип файла: rar db_ОКПО_3.rar (13.4 Кб, 1085 просмотров)
1
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 3
22.06.2012, 10:20
Agapov_stas, Вы гений!
именно то что надо.
у меня есть таблица с 100 000 записей и там надо находить данные с тем или иным содержанием.
при этом поиски периодические, с добавлениями. Ваш вариант самый лучший для таких поисков.
Огромное спасибо за помощь.
С уважением Виктор.
0
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
22.06.2012, 10:24
Цитата Сообщение от vikroma Посмотреть сообщение
у меня есть таблица с 100 000 записей и там надо находить данные с тем или иным содержанием.
Виктор, вероятно, что есть и лучше(быстрее по выполнению) способ.
Это был лишь вариант..

P.S. в строчке:
Visual Basic
1
a = " SELECT Таблица1.ОКПО, Таблица1.Поле1, Таблица1.Поле2 FROM Таблица1 WHERE 1=1 AND " & " " & SelToStr(Me.Список0, 0)
1=1 и AND можно убрать, лишнее..
Visual Basic
1
a = " SELECT Таблица1.ОКПО, Таблица1.Поле1, Таблица1.Поле2 FROM Таблица1 WHERE " & " " & SelToStr(Me.Список0, 0)
1
20 / 20 / 0
Регистрация: 22.08.2012
Сообщений: 103
22.08.2012, 10:37
Цитата Сообщение от alvk Посмотреть сообщение
А вот тоже самое, только без единой строчки кода и даже без использования запроса
Спасибо! А как организовать подобнейший же поиск, но по нескольким критериям отбора.
При чем, необходимо отображение всех записей, и при выборе параметров поиска производилась автоматическая фильтрация?
Поля поиска: Населенный пункт, цена ОТ-ДО, количество комнат ОТ - ДО
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
22.08.2012, 11:22
Цитата Сообщение от paradogs Посмотреть сообщение
А как организовать подобнейший же поиск, но по нескольким критериям отбора.
При чем, необходимо отображение всех записей, и при выборе параметров поиска производилась автоматическая фильтрация?
Поля поиска: Населенный пункт, цена ОТ-ДО, количество комнат ОТ - ДО
Использовать удобнейший инструмент Основные поля/Подчиненные поля (LinkMaster/ChildFields) не получится, поскольку задаются интервалы. Удобно, в данном случае, сформировать динамический запрос в коде и задать его SQL-строку строку свойству RecordSource подчиненной формы.
Формирование запроса, например так
Visual Basic
1
2
3
4
5
6
7
dim s, p
if isnull(me.[Населенный пункт]) then p="True" else p="[Населенный пункт]='" & me.[Населенный пункт] & "'"
s="select * from Таблица " _
& " where " & p _
& " and ([Цена] between " & nz(me.[ЦенаОТ],0) & " and " & nz(me.[ЦенаДО], 9999999999)) _
& " and ([Количество комнат] between " & nz(me.[Количество комнатОТ],0) & " and " & nz(me.[Количество комнатДО],100)) 
me.МояПодчиненнаяФорма.Form.RecordSource=s
Этот код можно поместить на кнопку или на процедуру AfterUpdate каждого из контролов условий формы

Функция NZ здесь применена для выполнения условия показывать все, если какой-то параметр не выбран.
Код для населенного пункта также учитывает возможность выбрать все, если он не задан.

Имена контролов формы и полей таблицы следует исправить на истинные.

И последнее. Вместо текстового имени населенного пункта, лучше использовать его числовой код из справочника населенных пунктов. Если такого справочника нет, надо его создать. Иначе вас ждут неожиданные и трудноуловимые ошибки в разном написании одного и того же пункта
1
alexman
23.09.2012, 19:30
Цитата Сообщение от alvk Посмотреть сообщение
А вот тоже самое, только без единой строчки кода и даже без использования запроса
как реализовали без запроса?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.09.2012, 19:30
Помогаю со студенческими работами здесь

Создание формы и скрипта для поиска
Нужна ваша помощь так как я это плохо разбираюсь , у меня вот например есть номера паспортов, имена и фамилии людей , я вписываю номер...

Создание формы для редактирования таблицы
Есть задача на создание формы для редактирования шедуллера БД. Таблицу на SQL и процедуры изменения, добавления удаления я сделал...

Копирование данных одного поля из разделенной формы (таблицы) в нужные записи другой таблицы
Здравствуйте! Добрый вечер! Подскажите пожалуйста, как из разделенной формы (в которой после выборки осталось примерно 300 записей)...

Перенос id-а открытой записи из Формы 1 в источник записи для Формы 2
Есть форма 1, в ней есть такое поле как id - уникальный идентификатор записи и набор многих записей. Хочу запилить кнопку, нажав на которую...

Выбрать по 1 записи из таблицы 2 для каждой записи из таблицы 1
В таблице Document_Action по несколько записей для некоторых (не для всех) записей из таблицы Payment. Нужно выбрать по 1 из...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru