Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
MS Access

Поиск по базе Access через ADOQuery

28.10.2019, 19:27. Показов 3767. Ответов 11

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
В общем, у меня в проекте идёт подключение базы данных Access. На форме использую ADOConnection, DataSource и ADOQuery, вывожу через DBGrid.

Составляю запрос поиска в следующем виде:
C++
1
2
3
4
5
FormMain->ADOQuery1->SQL->Clear();
FormMain->ADOQuery1->SQL->Text=("SELECT * FROM Table1");
FormMain->ADOQuery1->SQL->Add("WHERE Name LIKE '"+EditName1->Text+"%'");
// и т.д.
FormMain->ADOQuery1->Open();
Запрос идёт через проверку заполненности Edit'ов в GroupBox'e, поэтому параметров поиска может быть от 1 до n.
Мне необходимо реализовать, чтобы параллельно можно было искать несколько объектов по N количеству параметров (с 1 объектом по N кол-ву параметров проблем нет). У меня это никак не получается, поэтому я решил запрос по 1-ому объекту выделять допустим зеленным цветом, а по 2-ому объекту красным цветом. Но тут приходится делать запрос через AND для 1-го объекта и OR для 2-го объекта, в связи с чем вылазят некорректные результаты поиска и всё выделяется красным.

ВНИМАНИЕ ВОПРОС: Как сделать, чтобы при поиске в DBGrid отображались не только результаты поиска, а вся таблица + результаты выделены через MultiSelect.
Первый объект найден -> выделен, после этого начинается поиск второго -> его выделение и так n объектов.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2019, 19:27
Ответы с готовыми решениями:

Поиск в базе Access через textBox
Подскажите как осуществить поиск в базе через textBox. Т.е. допустим есть таблица "Товары", в поле "Описание", по...

Поиск в базе данных Access через Edit
Здравствуйте. Тут возникла проблемка у меня, подскажите пожалуйста: Вот код Delphi procedure TForm1.Button2Click(Sender: TObject); ...

Поиск в базе данных Access через Edit
Прочитал до этого созданные темы перепробовал по разному, но у меня всё равно почему то не получается запустить данный поиск вылетает...

11
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
29.10.2019, 11:43
iSokol, а что Вы имеете в виду говоря "по одному объекту", "по второму объекту"??? Что это за объекты? Более подробно ситуацию обрисуйте...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.10.2019, 12:20
Цитата Сообщение от iSokol Посмотреть сообщение
ВНИМАНИЕ ВОПРОС: Как сделать, чтобы при поиске в DBGrid отображались не только результаты поиска, а вся таблица + результаты выделены через MultiSelect.
Первый объект найден -> выделен, после этого начинается поиск второго -> его выделение и так n объектов.
Сделай запрос, который скачивает всю таблицу, выполни его, потом сделай CloneRecordset и ищи локально, в другом потоке, записи, которые тебе нужно выделить
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
29.10.2019, 12:47
Цитата Сообщение от iSokol Посмотреть сообщение
...отображались не только результаты поиска, а вся таблица + результаты выделены...
Вот есть у меня таблица, в которой 100500 записей. Из них отобрать мне надо десяток-другой... И что, я должен все эти бешеные тышшы записей прокручивать, чтобы увидеть, что там красным цветом выделено? Как-то некошерная идея...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.10.2019, 12:53
Цитата Сообщение от D1973 Посмотреть сообщение
Вот есть у меня таблица, в которой 100500 записей. Из них отобрать мне надо десяток-другой... И что, я должен все эти бешеные тышшы записей прокручивать, чтобы увидеть, что там красным цветом выделено? Как-то некошерная идея...
Там, похоже, нужен обычный поиск по таблице, только чтоб асинхронный
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
29.10.2019, 12:58
oleg-m1973, возможно, но только зачем гадать... Пусть ТС объяснит, что у него там за "объекты" - тогда понятнее будет...
0
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
29.10.2019, 14:33  [ТС]
Наверно, можно сделать фильтрацию по цвету?
Изображения
 
0
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
29.10.2019, 14:37  [ТС]
D1973, Если настаиваете, то допустим таблица, содержащая название инструментов, производителя, тип, характеристики и их краткое описание. Нужно сделать так, чтобы поиск производился по N-ому количеству параметров, и параллельно можно было найти два и более инструмента по независимым критериям (пример: один произведен в США с такими-то хар-ми, а другой в России с другими хар-ми, заданными при поиске)
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
29.10.2019, 16:17
iSokol, для этого есть UNION
сделайте тестовую таблицу с данными, прикрепите ее сюда и напишите, что хотите из нее получить...
0
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
29.10.2019, 21:15  [ТС]
D1973, прикладываю образец таблицы, параметров будет больше (чувствительность, модуляция и т.д.).
Необходимо реализовать параллельный поиск. На первом скрине результат = 3 радиостанций, на втором = 2, на третьем =1, на четвёртом = 3.
То есть, поиск N-го количества радиостанций по независимым параметрам.
Миниатюры
Поиск по базе Access через ADOQuery   Поиск по базе Access через ADOQuery   Поиск по базе Access через ADOQuery  

Поиск по базе Access через ADOQuery  
Вложения
Тип файла: rar Database1.rar (15.2 Кб, 10 просмотров)
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
30.10.2019, 07:20
Вот на скрине поле таблицы Вашей БД. Это в корне неверный принцип хранения информации: данные в поле должны быть атомарны! Как Вы планируете осуществлять поиск в таком пот поле без дополнительных танцев с бубном?
А помимо этого - тут, как я уже написал, сработает именно объединение результатов выполнения нескольких запросов в один набор данных с помощью операции UNION
0
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
04.11.2019, 23:27  [ТС]
D1973, Спасибо! Не подскажите, как определить, что в запросе уже используется второй "WHERE" и дальше писать через "AND"? Первый определяю по количеству строк в запросе, но перед вторым может быть две строки, а может десять (зависит от количества введенных параметров в первом запросе до UNION)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2019, 23:27
Помогаю со студенческими работами здесь

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

Поиск по базе при помощи компонента AdoQuery
Дрброго времени суток. Есть вопрос, как организовать поиск по базе Access при помощи компонента ADOQuery. То есть нужно кнопка поиск рядом...

Динамический поиск по базе данных, с использованием ADOQuery и DBGrid
Есть на форме DBGrid и Edit, так вот, когда мы вводим в Edit символы, тут же начинается поиск и в DBGrid-е отображаются результаты. Т. е....

Редактирование (обновление) записи в базе данных через ADOQuery
Всем доброго времени суток. Допустим, что есть форма, на которой выведены ФИО работников, при нажатии на конкретного работника появляется...

Редактирование (обновление) записи в базе данных через ADOQuery
Всем доброго времени суток. Есть форма, на которой выведены ФИО работников, при нажатии на конкретного работника появляется новая форма,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru