Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
5 / 5 / 0
Регистрация: 25.12.2012
Сообщений: 26
1

Выборка несвязанных значений в одном критерии в запросе на обновление данных

15.02.2016, 18:25. Показов 1070. Ответов 6
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане.

Имеется база, в ней нужно настроить разные критерии выборки данных и соответственно сделать разные запросы на обновление данных.

Предисловие:
Обычно для каждого критерия выборки существует только одно значение, и с этим нет проблем.
Однако пользователю понадобилось выбрать несколько значений по одному и тому же критерию.
В связи с этим я сделал запрос на обновление данных с множественным выбором.
Сам запрос называется qryНомерНакладной, делается через форму frmНомерНакладной.
Для этой формы я настроил выборку только по одному критерию - Номер заказа.

Столкнулся со следующими сложностями:
1. Если поле Номерзаказа в форме пустое, тогда список значений не может быть составлен, и в запросе выдаёт 0, а нужно чтобы он выдавал все значения. В текущей реализации это невозможно, т.к. в запросе на обновление данных используется связь с запросом queryMuliselect, который, собственно, и отвечает за выборку данных.
2. Невозможно внести любой другой критерий поиска нескольких несвязанных значений, опять же из-за queryMuliselect.
3. Можно назначить дополнительную форму для множественного выбора каждого критерия, но я не знаю как именно это реализовать (не могу найти пример).
Реализация такой формы в SAP на скриншотиках для визуального представления.
0
Миниатюры
Выборка несвязанных значений в одном критерии в запросе на обновление данных   Выборка несвязанных значений в одном критерии в запросе на обновление данных  
Вложения
Тип файла: rar Пример.rar (98.2 Кб, 5 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2016, 18:25
Ответы с готовыми решениями:

Выборка из двух таблиц в одном запросе
Доброго времени суток! Есть две связанные таблицы, поле id в одной из которых является внешним...

Выборка из двух таблиц sql в одном запросе
есть 2 таблицы log_gp и log_ep в них одинаковые поля "id" "id_klient" "time" "opis" "info" ...

Групповое обновление записей желательно в одном запросе
Здравствуйте. Есть еще одна проблема. Есть список категорий с ручным порядком по полю order в...

Выборка из двух несвязанных таблиц
Есть таблицы zap(kod_zap,name_zap), workt1(kod_workt1,name_workt1), prom_sche(kod_prom,...

6
Модератор
Эксперт MS Access
10269 / 4183 / 679
Регистрация: 07.08.2010
Сообщений: 11,785
Записей в блоге: 4
15.02.2016, 19:35 2
таблица НомерНакладной явно неудачное решение
таблица Claim не прицеплена к схеме
0
Миниатюры
Выборка несвязанных значений в одном критерии в запросе на обновление данных  
Модератор
Эксперт MS Access
10269 / 4183 / 679
Регистрация: 07.08.2010
Сообщений: 11,785
Записей в блоге: 4
15.02.2016, 19:57 3
накладная есть накладная, т.е. пара таблиц +справочники

если ORDERS --это головная часть накладной (когда/кому)
то где товарная часть(что/сколько/цена)
---------
похоже таблица не нормализована
0
5 / 5 / 0
Регистрация: 25.12.2012
Сообщений: 26
15.02.2016, 20:29  [ТС] 4
Таблицу ClaimType прицепил, видимо случайно удалилась связь. Таблицу НомерНакладной сделал для преобразования множественных значений в столбик по 1-му, затем на основе этой таблицы создал запрос MultiSelect. Знаю, что неудачное решение, но иного способа для выборки нескольких значений я пока не вижу.

товарная часть(что/сколько/цена) - отсутствует, т.к. на каждую заявку будет только 1 товар. Соответственно количества и цены тут не будет. Зато будут номера GND, откуда и будет вычисляться цена. Но это в будущем. А пока Количество товара будет вычисляться по полю номер возврата.

Да, таблица ORDERS не нормализована, т.к. туда будут массово импортироваться данные из SAP. Поэтому такая корявая структура, к сожалению.

Необходимые данные о товаре есть в таблице tblGTD.
0
Модератор
Эксперт MS Access
10269 / 4183 / 679
Регистрация: 07.08.2010
Сообщений: 11,785
Записей в блоге: 4
15.02.2016, 20:53 5
какова цель выборки
--просмотр
--корректировка(имеется ввиду непосредственная, не update)

по каким полям выборка
--по любому
--по счету
--по номенклатуре

тип выборки
--точное соответствие(например гайка м12)
--примерное (все гайки, не оплаченные, 2014 года....)

примерный размер таблицы
--100 строк
--1000
--10000

если строк 10-20, то можно применить множественный выбор
если 20-50-100 --уже затруднительно
если более 100 --практически невозможно
0
5 / 5 / 0
Регистрация: 25.12.2012
Сообщений: 26
15.02.2016, 22:21  [ТС] 6
Цель выборки - заведение данных по определённым критериям отбора.
То есть пользователь заносит какие-то начальные данные - например номер акта и номенклатурный номер изделия.
А потом на все номера актов, что он завёл, нужно, например, поставить 1 блок заказа. Или на все эти номера актов проставить номер соглашения.
Я сразу предложил сделать какое-то однозначное значение - например дату или какой-нибудь шифр, который по-умолчанию заноситься в каждую новую запись, и уже по ним осуществлять отбор.
Но пользователя это не устраивает - он хочет выбирать много данных по нескольким критериям и изменять в них во всех какие-нибудь поля.
Для начала я хотел придумать реализацию хотя бы запроса на выборку данных, а уже потом думать об обновлении отдельных полей.

Корректировка данных уже не нужна, ведь я уже реализовал форму с отбором конкретного значения.
Тут именно вопрос в массовом обновлении 1 поля по критерию отбора содержащий несколько значений.

Ну то есть это как типа нарисовать красную линию синим цветом, да.

Забыл добавить, что критерий отбора должен быть динамическим, то есть в форме. Подобное я уже сделал, но это для одного значения, а надо чтоб туда несколько значений можно было впихнуть. Для одного значения можно посмотреть, например, форму снятия блока или форму размещения заказа.

Добавлено через 9 минут
Добавлю, что критерий "Артикул" будет увеличиваться с увеличением таблицы, всего примерно 100-150 значений. критерий отбора "Номер заказа" может содержать и больше, где-то 300-400. Это в максимуме, на первое время там будет пара десятков значений.

Добавлено через 8 минут
Можно например, ограничить список с выбором множественных значений дополнительным критерием отбора самого списка. Например только за сегодня, или за 2-3 дня.

По поводу типа запроса, не важно какой именно будет запрос (добавление, выборка и т.д.), если я пойму алгоритм отбора подобных записей, дальше уже пойдёт как по маслу.
0
Модератор
Эксперт MS Access
10269 / 4183 / 679
Регистрация: 07.08.2010
Сообщений: 11,785
Записей в блоге: 4
16.02.2016, 07:34 7
ввести столбик отбора(логический)
на форму 3 галочки
--сбросить отбор
--показать по галочке
--показать все

действия(форма ленточная)
--сортировка по нужному полю
--обычный динамический поиск по любым полям
--кликом по строке --установка галочки в отбор
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2016, 07:34

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Выбор двух значений из разных строк в одном запросе
Помогите, решить проблему: есть таблица +----------+-------+------+-------+ | id | title |...

Получение значений по значению полученному из другой таблицы в одном запросе
Привет! Есть 2 таблицы: COLOR: id | color NEGATIVE: id_color | id_negative | status ...

Сбор данных в одном запросе
Добрый день! Просьба подсказать каким образом (если это возможно) можно решить данную задачу: ...

Обновление данных в запросе
Создал запрос через конструктор в VB такого типа SELECT ., Квитанция.Сумма, Квитанция.,...


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

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

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