0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 12
1

База данных Access выборка и поиск

26.01.2020, 19:42. Показов 1369. Ответов 5
Метки нет (Все метки)

Здравствуйте уважаемые форумчане!
Пишу программу в Delphi, база данных Access, на главней форме DbGrid, Adoquery, Adoconnection, DataSourse. Сделал поиск по ФИО, через SQL запрос:
SQL
1
 'select * from glav where fio like'+help2+' order by fio';
поиск по должности:
SQL
1
 'select * from glav where doljnost like'+help2+' order by doljnost'
Поиск работает нормально, вопрос в другом, хочу сделать выборку после того как делаю поиск, через тот же Sql запрос, но все сбрасывается, читал что 2 SQL запроса нельзя делать, если можно склеить запросы через UNION. Хотел спросить совета, можно ли сделать выборку другим способом? Поиск у меня через Edit1, поиск по должности через Edit2., и остальные столбцы которые я хочу видеть в DBGrid я выбираю через combobox1.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2020, 19:42
Ответы с готовыми решениями:

Delphi и Access выборка, поиск, добавление данных
Добрый день. Давно не работал с Delphi. Да и опыта работы Delphi с БД Access не было. Такая...

База данных access поиск и фильтрация
Здраствуйте , есть исходник помогите с кодом поиска и фильтрации , перепробовал все поиски и...

Сформировать поиск данных в БД Access при условии что выборка происходит не из таблиц, а из запроса
Помогите пожалуйста! На первом рисунке именно то,что мне нужно То есть в поле TextBox...

База данных. Выборка записей со спаренными значениями
Столкнулся с не тривиальной задачей. Есть таблица, содержащая данные о книгах. Среди прочей рутины...

5
3866 / 3293 / 862
Регистрация: 29.08.2013
Сообщений: 21,592
Записей в блоге: 2
26.01.2020, 22:10 2
Цитата Сообщение от mozgtm Посмотреть сообщение
но все сбрасывается, читал что 2 SQL запроса нельзя делать
у тебя в грид выводятся данные, который находятся в Query. Когда ты закрываешь Query ты данные теряешь.

Цитата Сообщение от mozgtm Посмотреть сообщение
можно ли сделать выборку другим способом?
не понятно что именно ты хочешь делать другим способом

Цитата Сообщение от mozgtm Посмотреть сообщение
Поиск у меня через Edit1
что значит "через"? я понимаю перепрыгнуть через ххх. а как поиск можно делать через?
1
Модератор
7320 / 4794 / 2007
Регистрация: 21.01.2014
Сообщений: 20,342
Записей в блоге: 3
27.01.2020, 05:03 3
Цитата Сообщение от mozgtm Посмотреть сообщение
можно ли сделать выборку другим способом?
mozgtm, поконкретней надо значь что Вы хотите увидеть, т.к. тут возможно 2 варианта:
1. В одной записи таблицы БД находятся данные из Edit1 И Edit2 одновременно
SQL
1
SELECT * FROM glav WHERE (fio LIKE :f) AND (doljnost LIKE :d) ORDER BY fio, doljnost
2. В одной записи таблицы БД находятся данные из Edit1 ИЛИ Edit2
SQL
1
SELECT * FROM glav WHERE (fio LIKE :f) OR (doljnost LIKE :d) ORDER BY fio, doljnost
1
0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 12
27.01.2020, 20:13  [ТС] 4
Цитата Сообщение от сообщение от qwertehok
не понятно что именно ты хочешь делать другим способом
При выполнении нескольких SQL запросов у меня появилась ошибка, не найден DBEdit32 на второй форме, которую я использую для ввода и редактирования данных. Поэтому я и спросил на счет другого способа.
Цитата Сообщение от сообщение от qwertehok
что значит "через"? я понимаю перепрыгнуть через ххх. а как поиск можно делать через?
В Edit1 я прописал
Delphi
1
2
3
4
5
6
With Form1.ADOQuery1 do
 begin
  Close;
 SQL.clear;
SQL.Add'Select * from glav where fio like'+help2+' order by fio';
Open;
При вводе в Edit1 у меня осуществляется поиск по фамилии.
Может я ошибся использовав слово "через", надо было писать "с помощью" )

Цитата Сообщение от сообщение от D1973
поконкретней надо знать что Вы хотите увидеть
Я хотел чтобы при вводе в edit1 фамилии, она отображалась в таблице, когда я ввожу в edit2 должность, если у этого работника с этой фамилией такая есть, то чтобы она тоже отображалась, остальные столбцы были скрыты. Затем в combobox1 я выбираю один из столбцов и в итоге у меня должно получится ФИО, должность и 3 столбец из combobox1
0
0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 12
17.02.2020, 18:59  [ТС] 5
Еще раз всех приветствую!
Выборку по 2 Edit'aм я реализовал через параметры, создал отдельно AdoQuery2 для этого
Delphi
1
2
3
4
5
6
7
8
Adoquery1.Close;
form1.DBGrid1.DataSource:=Datasource2;
Adoquery2.Close;
Adoquery2.SQL.clear;
Adoquery2.SQL.add('select fio, doljnost, medosmotr from glav where fio=:f and doljnost=:d');
Adoquery2.Parameters.ParamValues['f']:=Edit1.Text;
Adoquery2.Parameters.ParamValues['d']:=Edit2.Text;
Adoquery2.open;
Все работает, вот только не разобрался с Combobox, в котором я добавил в Item's столбцы из таблицы. Добавил в SQL запрос "medosmotr=:m, а так же прописал параметр", чтобы сортировка происходила после ввода данных в Edit'ы и Выбором строки в Combobox:
Delphi
1
2
Adoquery2.SQL.add('select fio, doljnost, medosmotr from glav where fio=:f and doljnost=:d medosmotr=:m');
ADOQuery2.Parameters.ParamValues['m']:= ComboBox1.Text;
Выходит ошибка: "Отсутствует значение для одного или нескольких требуемых операторов"
В Adoquery2-Parametrs-добавил параметры: для Edit1-f, где value:fio; в Edit2 - d, где value: doljnost; для Combobox-m, где value:medosmotr
Не подскажите в чем может быть проблема?
0
Модератор
7320 / 4794 / 2007
Регистрация: 21.01.2014
Сообщений: 20,342
Записей в блоге: 3
17.02.2020, 19:22 6
Цитата Сообщение от mozgtm Посмотреть сообщение
в чем может быть проблема?
mozgtm, вот смотрите... Возьмем запрос, который работает
Delphi
1
select fio, doljnost, medosmotr from glav where fio=:f and doljnost=:d
и переведем его на русский:
Выбрать записи из полей fio, doljnost, medosmotr таблицы glav для которых выполнено условие: значение поля fio равно :f И ОДНОВРЕМЕННО С ЭТИМ значение поля doljnost равно :d
Теперь попробуйте сделать то же самое для запроса, который не работает, и Вы сами увидите,
что...
нет логической связки между вторым и третьим условиями
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2020, 19:22

База данных. Выборка записей со спаренными значениями
Столкнулся с не тривиальной задачей. Есть таблица, содержащая данные о книгах. Среди прочей рутины...

Ms Access: В запросе выборка поиск по месяцу и году
В запросе выборка поиск по месяцу и году

Выборка данных из БД Access
Здравствуйте. У меня есть таблица в БД. Нужно для каждого воспитанника вывести количество "Н" и...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.