Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Combobox+поиск в табличной форме  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16734
Шаман,

((([Наименование]) Like '*" & f & "*'))

куча лишних скобок

и самое основное - необходимость знать последовательность фрагментов
набрал не в нужном порядке - и никогда не найдёшь.


произвольный порядок ввода позволяет юзеру не запоминать что и как вводилось.
и вводить критерии более логически осмысленно.
из твоего же примера 7 мат
логически 7 - объём и что по этому объёму
или наоборот
особенно это важно если обрабатывается заказ по телефону, клиент называет как ему удобно, и можно сразу вводить , не дожидаясь полного названия
это было проверено на приёме операторами заявки и во время приема набивания счета

и (если по уму) надо ограничивать число отображаемого(найденного) чтоб ускорить(ограничить) поиск
с точки зрения юзера - лучше запускать поиск по вводу каждого символа,
с точки зрения нагрузки на базу - по вводу пробела.
НО ни в коем случае после ввода нескольких фрагментов и ентер.
у меня работало по вводу каждого символа с лимитом отображения 15 записей - нагрузки на базу не замечалось

и это
 If Товар.ListCount = 0 Then
    Me.Товар = Null
    Me.Товар.Requery
    MsgBox "По введенному Вами запросу ничего не найдено!", vbCritical, "Результат поиска"
    Me.Товар.RowSource = "SELECT Товар_tbl.* FROM Товар_tbl;"
    End If

лишнее, если список раскрылся пустым - юзер и так видит , что ничего нет
(если это есть - значит ты запускаешь по ентер, что ни есть хорошо)
как вариант если есть отдельное поле производителя (не включенного в наименование ) можно искать и в соединении двух полей
12 апр 19, 16:37    [21860695]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6267
Если БД "боевая", а не "игрушечная"-посмотрите пример
(Поиск несколькими кликами мыша ничуть не сложнее набора на клавиатуре,зато намного нагляднее.Не все так просто,как кажется, но если разобраться-то все не так уж и сложно)
12 апр 19, 18:28    [21860795]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
Шаман
Member

Откуда:
Сообщений: 197
вадя,
Сколько людей столько и мнений. Вот моя логика работы:
1. Много скобок.
В силу своей лени и невнимательности, предпочитаю создавать сначала запросы (это быстрее чем писать код вручную), затем открываю их в режиме SQL и копирую из него отформатированный Access-ом тест.
Такое количество скобок указал именно Access. Попробовал убрать лишние, а он мне их опять подставляет.
Я как то ему очень сильно доверяю и раз он говорит что надо так, то я так и делаю.

2. Поиск
Фишка запроса поиска в двойном-тройном повторении наименования. Т.е. Вы можете какую угодно комбинацию составлять, но все равно товар найдется.
При тройном повторении наименования "Яблоко зеленое Польша" можно искать ябл*зел зел*ябл пол*зел*ябл пол*зел*ябл и т.д и т.п.

3. Нагрузка
Её нет. Набрали текстовые фрагменты, нажали Enter. База напряглась и выдала только совпадения и снова бездействует.
Если список слишком большой, то уточнили параметр еще одним фрагментом и еще раз нажали Enter.

4. Обработка результата поиска.
С этого все и началось.
Шаман
В табличной форме товар выбирается из справочника. По мере ввода данных происходит "фильтрация" списка.
В ленточной форме это работало на отлично, но появилась необходимость перевести это в табличный режим.
Казалось бы все просто. Поменял формат и все готово. Не тут то было...
Если в поле ввести ошибочно символ и удалить его, то combobox категорически не хочет обновляться.
Без данной обработки, при ошибочном вводе, поле остается пустым.

sdku,
Спасибо за пример, но:
Шаман
... появилась необходимость перевести это в табличный режим.

Ну на этом вроде все. Всем удачи и успехов в работе.
12 апр 19, 19:04    [21860829]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16734
Шаман
При тройном повторении наименования "Яблоко зеленое Польша" можно искать ябл*зел зел*ябл пол*зел*ябл пол*зел*ябл и т.д и т.п.
т.е. надо перебрать все варианты комбинации...
Шаман
Если в поле ввести ошибочно символ и удалить его, то combobox категорически не хочет обновляться.

Шаман
Без данной обработки, при ошибочном вводе, поле остается пустым.

на это могу сказать - необходимо учить матчать . у меня всё работало.
ну если свой вариант устраивает - не буду настаивать на своём
12 апр 19, 19:43    [21860841]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
Шаман
Member

Откуда:
Сообщений: 197
вадя
Шаман
При тройном повторении наименования "Яблоко зеленое Польша" можно искать ябл*зел зел*ябл пол*зел*ябл пол*зел*ябл и т.д и т.п.
т.е. надо перебрать все варианты комбинации...

Нет.Просто в строку поиска добавляем несколько раз наименование
f = Me.Товар.Text
Me.Товар.RowSource = "SELECT Товар_tbl.* FROM Товар_tbl WHERE ((([Наименование] &" "& [Наименование] &" "& [Наименование]) Like '*" & f & "*'));"
получаем "Яблоко зеленое Польша Яблоко зеленое Польша Яблоко зеленое Польша". Теперь попробуйте применить любую из комбинаций.
12 апр 19, 20:09    [21860853]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16734
Шаман
Нет.Просто в строку поиска добавляем несколько раз наименование
в моём случае число фрагментов может быть любым
12 апр 19, 20:32    [21860863]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16734
Шаман,

пример использования 2577190
12 апр 19, 21:03    [21860881]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
Шаман
Member

Откуда:
Сообщений: 197
вадя,
Ну в общем проблема та же, с чего я начал топик.
Как только в Вашем примере добавил источник записей для сохранения списка Таблица2 - начались проблемы.
Первая запись отработала на отлично, а на второй начались "глюки". Визуально пропадают набранные строки, которые не соответствуют текущему фильтру.
Добавил в Таблицу2 в поле Ф Яблоки зеленые Польша, т.к. ввод товара производится в одно поле.
Находит только по схеме яб зел пол. Если изменить порядок, то результат отрицательный.
При выходе и повторном входе строка с яблоками отображается как пустая.
Сделал базу для сравнения. Попробуйте сами потестить.

К сообщению приложен файл (ТаблФорма2.zip - 77Kb) cкачать
12 апр 19, 22:58    [21860941]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 553
Шаман, интересно а статистику по продажам и т.п. собираете тоже отдельно "яблоки зеленые" и "зеленые яблоки", "яблоки зеленые Польша"?
по мне так проблема здесь (и не только здесь) не в поиске а во вводе, имхо.
12 апр 19, 23:22    [21860957]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
Шаман
Member

Откуда:
Сообщений: 197
alecko,
1. Возникла проблема с combobox при переводе приходной ТТН с ленточной формы на табличную.
2. Проблема решена с помощью простейших манипуляций. Параллельно затронулась тема фильтрации с универсальным порядком ввода ключевых слов.
3. Вадя предложил готовое решение, демонстрирующее отсутствие ошибки при отсутствии нужного результата, которое я попытался адаптировать под собственные нужды.
4. В процессе изучения выяснилось, что предложенный пример не подходит для данной цели.
Причем здесь статистика?
13 апр 19, 00:00    [21860980]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
Шаман
Member

Откуда:
Сообщений: 197
alecko,
Еще одно уточнение. Пользователь выбирает товар из заполненного ранее справочника. При отсутствии нужной позиции он добавляет её в справочник, но это уже другая тема.
Основная задача состоит в том, что бы продавец не создавал дублирующие карточки.
Опять вернусь к яблокам. В базе уже есть товар Яблоки зеленые Польша. В накладной поставщика написано Зеленые яблоки Польша.
Юзер вводит зел ябл (из ттн) и получает ответ о том, что в базе уже есть подобный товар, который он и выбирает.
13 апр 19, 00:16    [21860989]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
Шаман
Member

Откуда:
Сообщений: 197
вадя
Шаман,

пример использования 2577190
Виноват, поспешил с выводами и был не прав. Действительно элегантное решение.
Допилил немного под себя и все заработало. Видимо вчера сказалось усталость за рабочую неделю.
СПАСИБО за совет.

К сообщению приложен файл (вадя.zip - 70Kb) cкачать
13 апр 19, 07:52    [21861015]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16734
Шаман,
к сожалению посмотреть решение не могу, с аксом расстался давно.
счас веб. но данное решение применяю и там. работает на ура.
13 апр 19, 09:23    [21861034]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
vmag
Member

Откуда: MP
Сообщений: 3272
вадя
счас веб.


если не секрет,- интерфейс, бд, инструменты какие ? (так... чисто из интереса)
14 апр 19, 17:51    [21861658]     Ответить | Цитировать Сообщить модератору
 Re: Combobox+поиск в табличной форме  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16734
vmag
если не секрет,- интерфейс, бд, инструменты какие ? (так... чисто из интереса)
секрета нет - трёхзвенка - браузер/серверное приложение(java) /mysql(хранимки)
ide - Netbeans
14 апр 19, 20:00    [21861693]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft Access Ответить