Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 32
MS Access

Фильтрация поиска

26.02.2016, 00:14. Показов 1138. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят помогите сделать корректный поиск!!!!
Есть таблица DBGrid по которой осуществляется поиск. Хочу чтобы поиск можно было производить по нескольким буквам или цифрам (например я ввожу первые несколько букв - "клав" и он отображает все данные где встречается такое сочетание). Как это можно добавить уже в существующий код поиска??? А если таких данных нет, как сделать что бы выводилось сообщение об отсутствии данных??
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm2.BitBtn1Click(Sender: TObject);   // поиск
var
t,r:variant;
begin
if radiobutton1.Checked then t:='idsklad';
if radiobutton2.Checked then t:='Товар';
 
 
with FDM.sklad  do begin
Filtered := False;
Filter:='';
Filter:= t + r + edit2.text+edit1.text+edit2.text;
Filtered := True;
end;
end;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2016, 00:14
Ответы с готовыми решениями:

фильтрация или кнопка поиска
Нужно написать кнопку поиска или фильтрацию: например у меня имеется 3 поля: 1)ФИО(Петров),Код сделки(2204),Товар(Мясо),дата...

Фильтрация по нескольким полям с разными вариантами заполнения параметров поиска
Есть база данных ADO+Access. В базе семь полей(Фамилия, Имя, Отчество, Мобильный, Рабочий, Организация, Должность) По нажатию на кнопку...

Составить программу поиска элементов в массиве на основе метода двоичного поиска
Составить программу поиска элементов в массиве на основе метода двоичного поиска.

13
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
26.02.2016, 02:01
Лучший ответ Сообщение было отмечено Ania2013 как решение

Решение

Есть оператор Like который позволяет это делать. Только неясно к какому едиту его применить или ко всем 3?
Вот как для одного будет:
Delphi
1
Filter:= t + ' like ''' + edit2.text + '%''';
Ну а проверить наличие данных можно так:
Delphi
1
if FDM.sklad.isEmpty then ShowMessage('Тут рыбы нет!');
и еще один момент, возможно в лайке вам нужно * вместо % надо использовать.
1
26.02.2016, 02:14

Не по теме:

Цитата Сообщение от Ania2013 Посмотреть сообщение
Есть таблица DBGrid по которой осуществляется поиск.
Ну когда же вы, троешники, поймёте что в TDBGrid нет и никогда не было никаких данных? И что искать там абсолютно нечего!

0
26.02.2016, 08:27

Не по теме:

Цитата Сообщение от northener Посмотреть сообщение
Ну когда же вы, троешники, поймёте что в TDBGrid нет и никогда не было никаких данных?
Перед днем когда не нужен будет этот форум.

Анекдот:
Эмир спросил у Хаджи Насредина о своем дне смерти. На что тот ответил
Насредин: - О Эмир ты умрешь за день до великого праздника!
Эмир: - А когда этот день будет?
Насредин : на следующий день после твоей смерти! :)

0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 32
28.02.2016, 03:46  [ТС]
Выдает при компиляции ошибку. Но я не могу понять как ее исправить
Delphi
1
2
3
4
5
6
7
8
procedure TForm3.Button1Click(Sender: TObject); // поиск товара: по коду и товару
Var
Res: Variant;
begin
 Res:=ADOTable1.Lookup('idsklad;Товар' VarArrayOf ([Edit1.Text]), 'Area');// вот в этой строке выдаёт ошибку
   if Res <> Null then
   ShowMessage('Area' + string(Res));
end;
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
28.02.2016, 12:41
Где запятая между первым и вторым параметром?
Почему вы задаете для поиска 2 поля, а массив формируете из одного?
0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 32
28.02.2016, 17:55  [ТС]
Вот я исправила
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm3.Button1Click(Sender: TObject); 
Var
Res: Variant;
begin
 Res:=ADOTable1.Lookup('idsklad;Òîâàð', VarArrayOf([Edit2.Text,Edit1.Text]),
 'Area');
   if Res <> Null then
   ShowMessage('Area' + string(Res));
end;
Только теперь когда я пытаюсь сделать поиск появляется вот это
Миниатюры
Фильтрация поиска   Фильтрация поиска  
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
28.02.2016, 18:54
А поле idsklad в таблице какого типа? Наверняка числового. Так попробуйте:
Delphi
1
2
Res:=ADOTable1.Lookup('idsklad;Товар', VarArrayOf([StrToInt(Edit2.Text),Edit1.Text]),
 'Area');
1
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 32
28.02.2016, 22:00  [ТС]
Прошу прощения что достала тупыми вопросами. Я просто с Delphi не очень дружу, я предпочитаю 1С или VoxPro, но приходиться писать курсовой на нем.
Как правильно прописать отмену?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm3.Button5Click(Sender: TObject); // добавление в склад
begin
ADOTable1.Insert;
ADOTable1.sklad('idsklad').AsString :=EDIT3.Text;
ADOTable1.sklad('Товар').AsString :=EDIT4.Text;
ADOTable1.sklad('Количество').AsString :=EDIT5.Text;
ADOTable1.sklad('Цена_за_1').AsString:=edit6.Text;
ADOTable1.sklad ('Итого').AsString:=edit7.text;
ADOTable1.Post;
end;
 
procedure TForm3.Button7Click(Sender: TObject); //Отмена добавлений
begin
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
//ADOTable1.       <-- как правильно закончить вот эту часть
end;
Вот так выглядит форма
Миниатюры
Фильтрация поиска  
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
28.02.2016, 22:39
Так у вас и так все нормально. Кнопка Добавить вносит данные в таблицу. А после Post отменить уже нельзя, можно только удалить. Тут кнопка Отменить не нужна.
0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 32
28.02.2016, 22:44  [ТС]
Спасибо
0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 32
28.02.2016, 23:44  [ТС]
Как исправить вот эту ошибку выскакивает когда я пытаюсь добавить данные
Миниатюры
Фильтрация поиска  
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
29.02.2016, 00:59
Видимо idSklad у вас счетчик, а его редактировать запрещено. Зачем вам вообще потребовалось это значение менять?
0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 32
29.02.2016, 01:53  [ТС]
Если подумать хорошо то и не нужно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.02.2016, 01:53
Помогаю со студенческими работами здесь

Алогоритм поиска поиска покрывающего дерева (Minimal Ratio Spanning Tree)
Задача которую мне необходимо решить сводится к нахождению Minimal Ratio Spanning Tree. Условие вкратце - дан граф (связный и...

Как с основной формы поиска в вордпресс прописать свою функцию поиска
Как с основной формы поиска в вордпресс прописать свою функцию поиска - с этой searchform данные уходили на обработку именно на эту...

Удаление с запроса поиска точек, пробелов, символов (метод поиска по сайту)
Добрый день, знатоки, подскажите: Если клиент вбивает в поиск номер продукта (например: 167.4А78-38 47) как сделать что бы с этого...

Составить процедуры поиска мин и номеров минимального значения и поиска вектора v
Дан массив. составить процедуры 1. поиска мин и номеров минимального значения 2.поиск вектора v, такого что если сумма imin +jmin...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru