Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,754
Записей в блоге: 1

Поиск слова по базе данных

13.07.2020, 08:55. Показов 1727. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Имеется БД MS Access со следующей структурой:
таблица_1
ID (счетчик)
несколько полей (числовой)
Description (длинный текст)

таблица_2
SP (числовой)
Name (Длинный текст)

таблица_3
ID (счетчик)
Name (Короткий текст)

таблица_4
ID (счетчик)
RF (Короткий текст)
RN (Короткий текст)
RP (Короткий текст)
SP (числовой) - ссылка на поле SP в таблица_2
Ph1 (Короткий текст)
Ph2 (Короткий текст)
MP (числовой)
FunR (Короткий текст)
Other (Длинный текст)
GS (Короткий текст)

Требуется написать хранимую процедуру, которая на входе получает строку и ищет её вхождение (не точное, а частичное) в текстовых полях всех таблиц БД. Т.е. если на входе строка "стро", а в текстовых полях есть слова "Острога", "Строгость", то в результатах должны оказаться обе записи. Процедура должна пропускать все не текстовые поля. Результат работы процедуры должен возвращаться как таблица вида Имя_таблицы - номер (индекс) строки. На просторах интернета нашёл статью MySQL. Поиск строки по всей базе, не знаю можно ли адаптировать код из неё под мои требования. Я мало понимаю в базах данных, поэтому буду рад любой помощи.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.07.2020, 08:55
Ответы с готовыми решениями:

Поиск слова по всей базе данных
Хорошего дня всем! Сначала немного вводной информации. Есть приложение, написанное мной на VB.Net, которое работает с базой данных...

Поиск в базе данных по части слова - вывод в датагрид
Здравствуйте. Возникла проблема с поиском по части слова в конкретном столбце таблицы, а точнее с его выводом. Имеется таблица clients...

Поиск по базе слова целиком
Всем привет. Есть таблица в базе (MySQL). В таблице есть поле title. Допустим есть записи со следующими title: чай черный ...

19
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
13.07.2020, 08:59
Цитата Сообщение от Uswer Посмотреть сообщение
Требуется написать хранимую процедуру
С этого и начинаются все проблемы. В акцессе такого нет. Придётся писать процедуру на VBA.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.07.2020, 09:15
Лучший ответ Сообщение было отмечено alvk как решение

Решение

Создаете UNION запрос всех таблиц и полей, и ищите в нем, в поле ... . Образец такого запроса
SQL
1
2
3
4
5
6
7
8
9
10
SELECT "таблица_1" AS Таблица, ID, "Description" AS Имя_Поля, Description AS Поле FROM Таблица_1
UNION ALL
SELECT "таблица_2" AS Таблица, ID, "Name" AS Имя_Поля, Name AS Поле FROM Таблица_2
UNION ALL
SELECT "таблица_3" AS Таблица, ID, "Name" AS Имя_Поля, Name AS Поле FROM Таблица_3
UNION ALL
SELECT "таблица_4" AS Таблица, ID, "RF" AS Имя_Поля, RF AS Поле FROM Таблица_4
UNION ALL
SELECT "таблица_4" AS Таблица, ID, "RN" AS Имя_Поля, RN AS Поле FROM Таблица_4
UNION ALL ...
1
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,754
Записей в блоге: 1
13.07.2020, 10:09  [ТС]
amd48, Ваше утверждение не верно, вот доказательство. Процедуры создаются из вне, но создаются и используются в дальнейшем.

ltv_1953, правильно ли я понял, что Имя_Поля это искомый текст? Если так, то я не вижу объявления процедуры или его и не должно быть?
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
13.07.2020, 10:26
Uswer,

Вы с ADO.NET работаете?
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,754
Записей в блоге: 1
13.07.2020, 10:44  [ТС]
Capi, да. Именно при помощи ADO.NET и будет вызываться процедура.
0
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
13.07.2020, 10:50
Цитата Сообщение от Uswer Посмотреть сообщение
я не вижу объявления процедуры
Uswer, это запрос
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
13.07.2020, 10:51
Uswer,

Вот в ADO.NET и конструируйте механизм запуска запросов Access.

А в Access сидят запросы.
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,754
Записей в блоге: 1
13.07.2020, 11:28  [ТС]
Попробовал один запрос SELECT. Запрос не делает поиск подстроки в полях, а просто формирует "сводную" таблицу, а мне не нужны все при все строки, нужны лишь с совпадениями. Как теперь осуществить отбор записей с совпадениями. Насколько я понимаю нужен WHERE по полю "Поле".
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
13.07.2020, 11:40
Цитата Сообщение от Uswer Посмотреть сообщение
Запрос не делает поиск подстроки в полях, а просто формирует "сводную" таблицу, а мне не нужны все при все строки, нужны лишь с совпадениями.
Там ведь написано:
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Создаете UNION запрос всех таблиц и полей, и ищите в нем, в поле ...
Цитата Сообщение от Uswer Посмотреть сообщение
Насколько я понимаю нужен WHERE по полю "Поле"
Правильно понимаете.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.07.2020, 11:50
Цитата Сообщение от Uswer Посмотреть сообщение
tv_1953, правильно ли я понял, что Имя_Поля это искомый текст?
Неправильно. Это имя поле, в котором найдется совпадение. По тексту разве не видно?
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
13.07.2020, 11:53
Цитата Сообщение от Uswer Посмотреть сообщение
вот доказательство.
А я всегда говорил, что после 2003-го все неполноценные.
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,754
Записей в блоге: 1
13.07.2020, 12:33  [ТС]
Цитата Сообщение от Capi Посмотреть сообщение
Правильно понимаете.
Ну раз я правильно понял, то подскажите, что записать в операторе WHERE для не полного совпадения значений. Например Where Поле = Искомое даёт только точное совпадение, а мне нужно вхождение подстроки в строку.

Добавлено через 1 минуту
Цитата Сообщение от ltv_1953 Посмотреть сообщение
По тексту разве не видно?
Я же писал.
Цитата Сообщение от Uswer Посмотреть сообщение
Я мало понимаю в базах данных
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.07.2020, 12:49
Цитата Сообщение от Uswer Посмотреть сообщение
Я мало понимаю в базах данных
Тогда нанимайте того, кто понимает. Обучение с нуля и или делание "за Вас" - это не здесь.

Добавлено через 4 минуты
Цитата Сообщение от alvk Посмотреть сообщение
что после 2003-го все неполноценные.
CREATE PROCEDURE есть начиная с 2000, вроде бы. Но только в стандарте ANSI 92, и, вроде бы, они только создают сохраненные запросы с параметрами.
1
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
13.07.2020, 13:25
Цитата Сообщение от Uswer Посмотреть сообщение
Ну раз я правильно понял, то подскажите, что записать
Вас в детстве не учили волшебному слову?
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,754
Записей в блоге: 1
13.07.2020, 13:44  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Обучение с нуля
Я не собираюсь учиться построению запросов в Access, если приспичит в будущем, то да, но не сейчас. Мне нужно решить конкретную задачу, по моему именно для этого форум и существует.

Цитата Сообщение от ltv_1953 Посмотреть сообщение
делание "за Вас" - это не здесь
Злые Вы! В других ветках форума ребята добрее.

Оператор Like решает проблему, всем спасибо. Отдельный респект ltv_1953, за образец UNION запроса.

Добавлено через 6 минут
Цитата Сообщение от Capi Посмотреть сообщение
Вас в детстве не учили волшебному слову?
СПАСИБО за напоминание о форме изложения текста на форуме. Я-то наивный думал, что когда пошло обсуждение темы, растягиваться в реверансах уже ни к чему, ан нет надобно! Впредь буду учтивее.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
13.07.2020, 14:14
Цитата Сообщение от Uswer Посмотреть сообщение
за напоминание о форме изложения текста на форуме.
Нет.
О форме обращения к людям, тратящим свое личное время на решение ваших проблем.
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
14.07.2020, 01:18
Цитата Сообщение от Uswer Посмотреть сообщение
Злые Вы! В других ветках форума ребята добрее.
Так и ступайте на другие подфорумы, ибо с этим тут делать нечего:
Цитата Сообщение от Uswer Посмотреть сообщение
Я не собираюсь учиться построению запросов в Access
Собственно везде без SQL делать нечего, зарубите себе на носу.
1
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,754
Записей в блоге: 1
14.07.2020, 13:26  [ТС]
alvk
Говори, что думаешь, но не настаивай на своём мнении.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
15.07.2020, 07:11
Цитата Сообщение от Uswer Посмотреть сообщение
но не настаивай на своём мнении.
Ты про мнение на философском форуме поспрашивай. А здесь технический форум. Нужно понимать разницу, прежде, чем идти на форум.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.07.2020, 07:11
Помогаю со студенческими работами здесь

Поиск в ADoquery, Delphi, поиск в базе данных
Доброго времени суток многоуважаемые пользователи данного сайта! Есть очень глупая проблема, с которой я, к сожалению, справиться не...

Поиск по базе по части слова в DataSet (tableadapter)
Добрый день. Вот как я делаю поиск: plangamybaBindingSource.Filter = string.Format(" Like'" + textBox1.Text + "%'"); ...

Как осуществить поиск данных по базе данных по связи многие-ко-многим
Репозиторий SqlApplicantRepository namespace theModel.Repository { public class SqlApplicantRepository:IApplicantRepository ...

Поиск в базе данных (поиск далее)
Добрый вечер! Нужна ваша помощь. Делаю поиск по базе, использую компонент AdoTable. В базе есть Одинаковые строки, нужно чтобы при нажатии...

Реализовать поиск и выбор данных в форме в базе данных Access
Здравствуйте! Подскажите пожалуйста,как реализовать поиск и выбор данных в форме в базе данных Access. Заданы таблицы товар,тип товара,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 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. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru