Поиск части текста по запросу

Автор Tech, 15 января 2020, 15:14

0 Пользователи и 1 гость просматривают эту тему.

Tech

Всем здравствуйте! Лет десять назад работал в аццесе, а сейчас столкнулся с опенофис на работе и появляются затупы. 1. Как в запросе прописать условие, чтобы запрос искал не только целиком все мной написанное, а ещё и то, что я не дописал. Пример - в запросе по параметру во всплывающем сообщении пишу: "обувь 14" Он мне выдаёт только эти строки. А надо чтобы выдавал ещё и " Обувь 14 18 01", "Обувь 14 11 АА" и т.п. Запрос на основе таблицы. В критерии столбца пишу ":Введите_значение". В ацессе можно было поставить звёздочку, а тут не канает..
2. Как я нашёл в форуме, кнопка не умеет открывать запрос, это так? Мне, по сути, нужно создать форму с несколькими кнопками для вызова запросов. К сожалению, микрософт устанавливать запрещено, поэтому работаем с тем, что есть..

Yakov

Цитата: Tech от 15 января 2020, 15:14можно было поставить звёздочку, а тут не канает..

Попробуйте

LIKE 'обувь 14*'

economist

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Tech

Цитата: economist от 15 января 2020, 15:35
или LIKE 'обувь 14%'
А как это сделать во всплывающем сообщении? У меня же не только обувь 14, а есть и другие артикулы. К примеру во всплывающем пишу обувь 11 и и он должен выдать все 11е артикулы.

economist

Назовите движок базы данных. Если есть Форма(Диалог) с полем для ввода строки поиска - в её свойствах нужно   убрать SQL-запрос и вместо него назначить Макрос, который к содержимому поля добавит подстановочный знак "*" или "%"  (одиночные символы ищутся по ?/_).
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Tech

Цитата: economist от 16 января 2020, 08:29Назовите движок базы данных. Если есть Форма(Диалог) с полем для ввода строки поиска - в её свойствах нужно   убрать SQL-запрос и вместо него назначить Макрос, который к содержимому поля добавит подстановочный знак "*" или "%"  (одиночные символы ищутся по ?/_).
Про движок не понял, где это посмотреть.
Вот код из режима SQL:"SELECT "Название" AS "Название", "Артикул" AS "Артикул", "№ машины" AS "№ машины", "Основное сырье" AS "Основное сырье", "Корректор" AS "Корректор", "% корректора" AS "% корректора", "Плановый выпуск" AS "Плановый выпуск", "фактический выпуск" AS "фактический выпуск", "Дата начала производства" AS "Дата начала производства", "Дата конца производства" AS "Дата конца производства" FROM "Производство" WHERE "Название" = :Введите_название" Сюда както нельзя добавить * или %? С макросом не знаю как работать, что как писать..

economist

WHERE "Название" LIKE "%" || :Введите_название || "%"

Это мы ищем подстроку во всей строке. Если нужно искать с начала строки, то

WHERE "Название" LIKE :Введите_название || "%"

Движок БД написан слева внизу окна OpenOffice|LibreOffice Base
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Tech

Цитата: economist от 16 января 2020, 10:02Движок БД написан слева внизу окна OpenOffice|LibreOffice Base
Слева внизу у меня написано "Встроенная база данных"
Цитата: economist от 16 января 2020, 10:02WHERE "Название" LIKE "%" || :Введите_название || "%"

Это мы ищем подстроку во всей строке. Если нужно искать с начала строки, то

WHERE "Название" LIKE :Введите_название || "%"
ругается на оба выражения.

Tech

Цитата: economist от 16 января 2020, 10:02
WHERE "Название" LIKE "%" || :Введите_название || "%"

Это мы ищем подстроку во всей строке. Если нужно искать с начала строки, то

WHERE "Название" LIKE :Введите_название || "%"
Вот так я писал - и он ругался:
SELECT "Название" AS "Название", "Артикул" AS "Артикул", "№ машины" AS "№ машины", "Основное сырье" AS "Основное сырье", "Корректор" AS "Корректор", "% корректора" AS "% корректора", "Плановый выпуск" AS "Плановый выпуск", "фактический выпуск" AS "фактический выпуск", "Дата начала производства" AS "Дата начала производства", "Дата конца производства" AS "Дата конца производства" FROM "Производство" WHERE "Название" LIKE :Введите_название || "%"

Движок БД написан слева внизу окна OpenOffice|LibreOffice Base

economist

HSQLDB это нервотрепка, а не движок. Глюки, вранье в доках, чехарда с кавчками. Тем не менее у меня запрос

SELECT * FROM "Таблица1" WHERE "Название" LIKE ( :ВведитеНачалоНазвание || '%' )

при вводе "Рома" в диалоге - выдает строку с "Ромашка", т.е. работает как вы хотите.

Файл ODB вложен. Запускать запрос в Запросы - Запрос1
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

economist

Еще возможно вот что. В редакторе запросов Base - потрогайте неприметную кнопку SQL [Выполнить SQL-команду напрямую] - она вкл/выкл встроенный парсер запросов, который делает из рабочего - нерабочее.
Для одних запросов - это кнопка спасение, для других - смерть. Кнопка эта - рукотворный геморрой вселенских масштабов, но в новых версиях LO её мало того что лишили надписи SQL, так еще и обесцветили и обезличили. Приходится ногами идти к юзеру и тыкать самому, люди просто её не могут отличить от соседних. 
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Tech

Цитата: economist от 16 января 2020, 12:23при вводе "Рома" в диалоге - выдает строку с "Ромашка", т.е. работает как вы хотите.

Файл ODB вложен. Запускать запрос в Запросы - Запрос1
Спасибо огромное! Дело оказалось вот в чем - когда редактировал старый запрос и писал строку в режиме SQL, он не работал. Когда создал новый запрос идентичный предыдущему с вашей же строкой, то все заработало. Может он старый код както сохраняет и ошибается при его изменении...не понятно..
Ну и вопрос еще один - нельзя вызывать запрос нажатием кнопки в форме? Или сделать надпись в кнопке гиперссылкой на запрос?? Пробовал, тыкал, жмякал не получалось никак

economist

У каждой кнопки (и др. контролов) в форме, диалоге - есть вкладка или св-во "Макрос", который запустится при нажатии, получении фокуса итд. Но нужно понимать что делает запрос и куда он выводит свои результаты. Поищите по Форуму по словам "подчиненная зависимая форма", это очень похоже на то, что вы ищете.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...