Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
MS Access

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

18.01.2013, 16:07. Показов 5675. Ответов 52
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте товарищи. Нужна ваша помощь. Есть база данных сделанная в акцес там примерно 20 таблиц. В делфи мне нужно сделать поиск по всем таблицам. тоесть например у меня есть в таблицах одно и то же поле "год" вот мне надо что бы к примеру вводим год и из всех таблиц показывался только этот год. т.е из разных таблиц делался отбор только по конкретному году.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2013, 16:07
Ответы с готовыми решениями:

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

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

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

52
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
19.01.2013, 16:44  [ТС]
Студворк — интернет-сервис помощи студентам
пишет несоответствие типов данных в условиях режима отбора
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
19.01.2013, 16:47
Вспомнил, с кавычками корректно будет так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
with ADOQuery1 do
       begin
         Close;
         SQL.Clear;
         SQL.Add('SELECT Название');
         SQL.Add('FROM АкустическиеГитары');
         SQL.Add('WHERE [Год выпуска]="'+yearvalue+'"');
         SQL.Add('UNION');
         SQL.Add('SELECT Название');
         SQL.Add('FROM Электрогитары');
         SQL.Add('WHERE [Год выпуска]="'+yearvalue+'"');
         SQL.Add('UNION');
         SQL.Add('SELECT Название');
         SQL.Add('FROM БасГитары');
         SQL.Add('WHERE [Год выпуска]="'+yearvalue+'"');
         Open;
       end;
Но лучше использовать вариант с QuotedStr.
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
19.01.2013, 16:48  [ТС]
пишет несоответствие типов данных в условиях режима отбора
Все данные проверил записаны верно
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
19.01.2013, 16:50
Цитата Сообщение от Arxangel2 Посмотреть сообщение
пишет несоответствие типов данных в условиях режима отбора
В базе данных поле [Год выпуска] числовое, а вы переменную берете не числовую, а строковую.
Сделайте перевод в число, например:
Delphi
1
yearvalue:=StrToInt(LabeledEdit1.Text);
0
Эксперт Pascal/Delphi
 Аватар для droider
4893 / 2826 / 867
Регистрация: 04.10.2012
Сообщений: 10,278
19.01.2013, 16:53
Arxangel2, Вы хотите стать программистом? Тогда научитесь искать решение. Вопросы о не соответствующих типах данных, вспомогательных функциях и т.д. можно найти самому. Книги!!! Интернет не берите за основной источник. Он лишь поможет Вам когда Вы овладеете основами проектирования БД. (если Вы выбрали эту область).
Без обид и удачи. И этой своей базой Вы уже давно занимаетесь, насколько я помню.
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
19.01.2013, 17:08  [ТС]
да это курсач я делаю и закончил бы его если бы препод незаставил делать поиск
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
19.01.2013, 17:47
Цитата Сообщение от WoodHead Посмотреть сообщение
В базе данных поле [Год выпуска] числовое, а вы переменную берете не числовую, а строковую.
Сделайте перевод в число, например:
Delphi
1
yearvalue:=StrToInt(LabeledEdit1.Text);
Очередной мой косяк. Кажется, это тоже не сработает. Надо передавать переменную через параметр.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
with ADOQuery1 do
       begin
         Close;
         SQL.Clear;
         SQL.Add('SELECT Название');
         SQL.Add('FROM АкустическиеГитары');
         SQL.Add('WHERE [Год выпуска]=:yearvalue');
         SQL.Add('UNION');
         SQL.Add('SELECT Название');
         SQL.Add('FROM Электрогитары');
         SQL.Add('WHERE [Год выпуска]=:yearvalue');
         SQL.Add('UNION');
         SQL.Add('SELECT Название');
         SQL.Add('FROM БасГитары');
         SQL.Add('WHERE [Год выпуска]=:yearvalue');
         Open;
 
         Parameters.ParamByName('yearvalue').AsInteger:=yearvalue;
       end;
Или в базе данных поле сделать не числовым, а строковым.

Добавлено через 6 минут
последняя строка не
Delphi
1
Parameters.ParamByName('yearvalue').AsInteger:=yearvalue;
а
Delphi
1
Parameters.ParamByName('yearvalue').Value:=yearvalue;
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
19.01.2013, 18:12  [ТС]
Всё равно несоответсвие типов

Добавлено через 18 минут
Спасибо большое я разобрался)

Добавлено через 1 минуту
у меня только маленький другой вопросс а фотки у меня стоят на товаре можно что бы при нахождении этих товаров отображались они просто у меня не ставится тим на дбимэйнж что ему отобрадать(
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
19.01.2013, 18:17
Цитата Сообщение от Arxangel2 Посмотреть сообщение
Спасибо большое я разобрался)
у меня только маленький другой вопросс а фотки у меня стоят на товаре можно что бы при нахождении этих товаров отображались они просто у меня не ставится тим на дбимэйнж что ему отобрадать(
Какой вариант заработал? Аж самому интересно стало.
Про фотки я не в курсе.
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
19.01.2013, 18:20  [ТС]
и вот такой вот ещё вопросможно ли сделать поиск например вот у меня много разных фирм производителей можно например сделать поиск что бы я вводил название какого то производителя например Gibson, fender и он мне находил всё что есть у меня в программе с этим названием?

Добавлено через 1 минуту
облегчил жизнь и в БД числовой поменял на строковый))))
и 2 вариант незаработал......
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
19.01.2013, 18:59
Цитата Сообщение от Arxangel2 Посмотреть сообщение
облегчил жизнь и в БД числовой поменял на строковый))))
и 2 вариант незаработал......
Странно, я был почти уверен, что уж этот вариант был бы правильный:
Delphi
1
Parameters.ParamByName('yearvalue').Value:=yearvalue;
ну, да ладно.
Цитата Сообщение от Arxangel2 Посмотреть сообщение
и вот такой вот ещё вопросможно ли сделать поиск например вот у меня много разных фирм производителей можно например сделать поиск что бы я вводил название какого то производителя например Gibson, fender и он мне находил всё что есть у меня в программе с этим названием?
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT Название
FROM БасГитары
WHERE Название LIKE "*Fender*"
OR Название LIKE "*Gibson*" 
UNION
SELECT Название
FROM АкустическиеГитары
WHERE Название LIKE "*Fender*"
OR Название LIKE "*Gibson*" 
UNION
SELECT Название
FROM Электрогитары
WHERE Название LIKE "*Fender*"
OR Название LIKE "*Gibson*"
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
19.01.2013, 19:04  [ТС]
как я понял если вписывать какие либо ещё фирмы то просто пишем
OR Название LIKE "*Другое название*"
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
19.01.2013, 19:52
Цитата Сообщение от Arxangel2 Посмотреть сообщение
как я понял если вписывать какие либо ещё фирмы то просто пишем
OR Название LIKE "*Другое название*"
Да, так и есть. SQL запросы очень облегчают жизнь. Кстати, зря пренебрегаете встроенными возможностями MS Access по построению запросов. В нем, кроме конструктора, есть также текстовый редактор SQL запросов, где можете все запросы предварительно проверять.
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
20.01.2013, 00:41  [ТС]
а можешь сделать этот код для паскаля)
0
Почетный модератор
12274 / 5341 / 268
Регистрация: 05.04.2011
Сообщений: 14,086
Записей в блоге: 2
20.01.2013, 00:56
Arxangel2, один вопрос - одна тема. Читаем правила форума
Вопросы по паскалю создаем в соответствующем разделе.
0
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 14
02.06.2017, 07:53
Товарищи, возымел я нужду в написании программы с базой данных ACCESS и возможностью поиска по ней. Нашел в сети ролик в котором создается аналог, но так как мой уровень знания языка Delphi равен 0 и автор не удосужился объяснить все связи, функции, аргументы и логику я пришел уже в конце пути в тупик. Моё предположение что я что-то напутал прописывая код поиска, а что найти не могу. Уже кучу вариантов перепробовал меняя местами операторы, читал форум –правил синтаксис. Короче тупик. Помогите поправить поиск. (Есть ошибка в слове стеллаж, но и столбец с ошибкой. Это потом поправлю). Заранее Спасибо.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Edit1Change(Sender: TObject);
var help1, help2:string;
begin
help1:='%'+Form1.Edit1.Text+'%';
help2:=QuotedStr(help1);
with Form1.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('SELECT * FROM DBTel WHERE [Ячейка] like'+help2+' or [Номенклатурный номер] like'+help2+' or [Название материала] like'+help2+' or [Стелаж] like'+help2+' order by Fam');
Open;
end;
end;
Таблица называется Fam.
Миниатюры
Поиск по базе данных   Поиск по базе данных  
0
W
 Аватар для kavasaka
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
02.06.2017, 07:57
А DBTel точно есть в базе?
0
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 14
02.06.2017, 08:05
kavasaka
Так DBTel это название базы. База есть.
Миниатюры
Поиск по базе данных  
0
W
 Аватар для kavasaka
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
02.06.2017, 08:20
from - это таблица(ы), а не база
https://msdn.microsoft.com/ru-... 77634.aspx

Добавлено через 2 минуты
1
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 14
02.06.2017, 08:45
kavasaka
Вот сейчас всё еще хуже стало и не понятней. Про from вроде речь не идет.
Главное у чувака в кино все работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.06.2017, 08:45

Поиск в базе данных
К программе подключен sql запрос: SELECT prixod.Data, prixod.Vremya, obekti_ycheta.Naimenovanie, tipi_obektov.Nazvanie,...

Поиск по базе данных
Помогите, пожалуйста, организовать поиск по базе данных. Ошибки не нахожу, поиск должен осуществляться при помощи Edit. procedure...

Поиск по Базе данных
У меня есть база данных хочу сделать поиск по ФИО не понимаю как скрин приложу

Поиск в Базе Данных
Как сделать поиск в Delphi 7? Я использую DBGrid

Поиск по базе данных
Как сделать поиск по базе данных, подскажите пожалуйста? например: дана таблица с столбцами:№,тип мото, название мото, цена мото,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru