Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/39: Рейтинг темы: голосов - 39, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183

Как сократить запрос о многих записях по разным полям

23.02.2021, 18:10. Показов 8285. Ответов 115
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех форумистов. Может, кто посодействует. Проблема след. Есть 3 поля в БД: Деталь (текст), Модификация, КодДетали. Деталей (записей) за сотню. На каждую есть 3 - 5 Модифов. Детали обозначаются кодами по номерам записей: от 1 до 100. Модифы тоже кодами от 1 до 5 - их вводим вручную. При вводе кода Модифа нужно автоматически присваивать в поле запроса Коэфф: соответствующий тоже код от 1 до 7. Каждый из этих кодов строго соответствует коду Модифа. Если в поле Модиф вводим 1, то в поле запроса Коэфф ставится 3. Если в Модиф вводим 2, то в поле Коэфф ставится 4 и пр.
Я попытался ввести условия в Запрос, но для каждой Детали надо писать в одной строке одной ячейке Конструктора запросов 5 условий, типа:
IIf([Деталь]=1;IIf([Модиф]=1;3;IIf([Модиф]=2;4;0))) - это для Детали 1. Тут же после этого кода ставим для Детали 2 -
IIf([Деталь]=1;IIf([Модиф]=1;3;IIf([Модиф]=2;4;0;IIf([Деталь]=2;IIf([Модиф]=1;2;IIf([Модиф]=3;5;0)) и так для всех 100 Деталей. Вряд ли что путное получится. Может можно это как-то запрограммировать? Это Access 2000. Ставлю скрин чтоб попонятнее.
Миниатюры
Как сократить запрос о многих записях по разным полям  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2021, 18:10
Ответы с готовыми решениями:

Запрос выборки по разным полям, а результат в одну таблицу
Есть такой запрос например SELECT ALL Фамилия, Имя, Отчество, Страна INTO FROM WHERE Страна = 'Армения' Вопрос: как...

Сортировка постов по произвольным полям ACF. В разных рубриках по разным полям
Всем доброго дня! Не могу понять каким образом можно реализовать сортировку постов в разных рубриках по разным полям. Пример: ...

Поиск по разным полям.
Приветствую. Подскажите такой вопрос. Есть база. В таблице 8 полей. По нажатию на кнопку открывается новая форма с 8-ю edit'ами. В них...

115
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183
27.02.2021, 14:17  [ТС]
Студворк — интернет-сервис помощи студентам
Eugene-LS,: "Пока они жёстко фиксированы в функции :"(не пойму, как ставить цитаты)

Так и надо жестко фиксировать в функциях для всех Деталей. Это значит, что надо в коде просто скопировать строки:
Case 1
F = Choose(M, 3, 4, 0, 0, 0)
Case 2
F = Choose(M, 2, 0, 5, 0, 0)
как:
Case 3
F = Choose(M, 1, 4, 3, 0, 0)
Case 4
F = Choose(M, 3, 0, 2, 2, 0)
и также для остальных Деталей? В скобках это наши постоянные Коэффциенты или это Модифы? Я ничего не понимаю в кодах, как и все у нас.
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 14:22
1.
Цитата Сообщение от novyi Посмотреть сообщение
1. Как, т.е. куда нужно вводить Коэффициенты для Запроса 1?
В функцию, показанную в сообщении #5.
В выложенной БД эта функция находится в модуле Module1. Посмотрите там.
Цитата Сообщение от novyi Посмотреть сообщение
Они ведь считаются как функция по таблице Детали? А в ней нет поля Коэффициенты.
Да, поля в таблице нет. Это вычисляемое поле.
Вы ведь так и хотите, чтобы поле Коэффициентов появлялось только в запросе.
Цитата Сообщение от novyi Посмотреть сообщение
Или они берутся из таблицы Коэффициеты?
Нет. В запросе Запрос1 наличие таблицы Коэффициеты не требуется.

2.
Цитата Сообщение от novyi Посмотреть сообщение
для 500 деталей - 2500 строк по этому полю
Да. Это будет справочник по всем комбинациям Деталь-Модификатор.
Справочник будет использоваться для этого:
Цитата Сообщение от novyi Посмотреть сообщение
Коэфф, чтобы он подставлялся автоматом в Таблицу новой партии после ввода нового числа Модифа в запись конкретной Детали
Далее.
Вы пишете:
Цитата Сообщение от novyi Посмотреть сообщение
Мы все пытаемся найти способ просто внести Коэффициенты в ячейку каждой строки Детали, как это можно было бы сделать в Excel
А Excel-то откуда берет значения коэффициентов?
Видимо, там тоже есть подобный справочник.
Если так, то этот Excel-справочник можно использовать в БД Access, а не создавать в БД справочник заново.
Можете пояснить, что там в Excel происходит?

3.
И еще.
Вы с самого начала вели речь так, что запрос якобы должен лишь показывает коэффициенты.
Но о том, что коэффициенты должны запомниться в таблице Детали, Вы не говорите.
И только Ваша фраза "внести Коэффициенты в ячейку каждой строки Детали, как это можно было бы сделать в Excel" из последнего Вашего сообщения говорит о фиксации коэффициентов в таблице.
Если требуется коэффициенты запоминать, то нужно
а) добавить поле Коэфф в таблицу Детали;
б) использовать запрос UPDATE, а не SELECT.
Так как надо-то? Запоминать в таблице? Не запоминать?
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 14:24
Цитата Сообщение от novyi Посмотреть сообщение
не пойму, как ставить цитаты
Это достаточно просто.
Выделяете нужный фрагмент, появляется всплывающая подсказка-команда "Цитировать" на желтом фоне.
Нажимаете на эту подсказку - цитата вставляется в окно редактирования сообщения.
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
27.02.2021, 14:31
novyi, во ! - пошла вторая страница топика, а "воз и ныне там ..."
Продолжайте "секретничать", к понедельнику будет 5 страниц без малейшего толка.
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 14:31
Цитата Сообщение от novyi Посмотреть сообщение
Это значит, что надо в коде просто скопировать строки:
Скопировать, а затем скорректировать.

Цитата Сообщение от novyi Посмотреть сообщение
скобках это наши постоянные Коэффциенты или это Модифы?
И то, и другое.
М - переданное в функцию значение модифа, остальные числа - коэффициенты.

Цитата Сообщение от novyi Посмотреть сообщение
Я ничего не понимаю в кодах, как и все у нас.
Что же делать?

Цитата Сообщение от novyi Посмотреть сообщение
Так и надо жестко фиксировать в функциях для всех Деталей.
Лучше использовать таблицу-справочник Коэффициенты.
Как показано в Запрос2.
И в кодах VBA разбираться не потребуется.
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
27.02.2021, 14:38
Цитата Сообщение от novyi Посмотреть сообщение
Я ничего не понимаю в кодах, как и все у нас.
Ну а мы уж тем более!
Может вам следует проконсультироваться и переформировать вашу задачку
...
А то получается: - "Я хочу что бы всё было хорошо - но не знаю как ....."
0
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183
27.02.2021, 17:11  [ТС]
Eugene-LS, Лучший способ демонстрации своей крутизны - перейти на личности.
Отвечаю. "Отмазка" следующая от тех, кто меня выше : "Ты отправишь кому-то кусок нашей базы, а потом получишь ее
обратно. Ты сможешь определить, что там будет в их кодах кроме того, что нужно нам?"

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

На содержательные вопросы тоже ответил, но ответ не появился, может еще на модерации.
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 17:25
Цитата Сообщение от novyi Посмотреть сообщение
На содержательные вопросы тоже ответил, но ответ не появился, может еще на модерации.
Такого здесь нет.
Все сообщения появляются в теме сразу.

Цитата Сообщение от novyi Посмотреть сообщение
"Ты отправишь кому-то кусок нашей базы, а потом получишь ее
обратно. Ты сможешь определить, что там будет в их кодах кроме того, что нужно нам?"
Даже слов нет.
Вам предлагалось хотя бы структуры пустых таблиц построить, чтобы не пришлось отвечающим заниматься этим.
0
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183
27.02.2021, 17:31  [ТС]
Звиняйте снова, что не так. Сообщения не видел, сейчас вижу. Я тут вобще советский летчик, потерявший зрение от
раны в смертельном бою с фашистами (это коды гады). Меня ведут на посадку по радио с родного КП. Погибну, но не сдамся,
блин. На вопросы щас отвечу.
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
27.02.2021, 17:34
Цитата Сообщение от novyi Посмотреть сообщение
Это я тут от лени выворачиваюсь всем объяснить, что нужно в виде аналога повторить самим ручками в исходной базе.
Вот теперь всё понятно.
Спасибо!
Успехов!
0
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183
27.02.2021, 17:36  [ТС]
Capi, Как открыть Модуль1 ?
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 17:40
Цитата Сообщение от novyi Посмотреть сообщение
Как открыть Модуль1 ?
Правой кнопкой мыши вызвать контекстное меню.
Там выбрать пункт Конструктор.

Цитата Сообщение от novyi Посмотреть сообщение
На вопросы щас отвечу
Пока ничего нет.
0
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183
27.02.2021, 17:50  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Сообщение от novyi
Это я тут от лени выворачиваюсь всем объяснить, что нужно в виде аналога повторить самим ручками в исходной базе.
Имелось в виду нам самим повторить - сделать (ручками) аналогом по подсказке.

Добавлено через 2 минуты
Capi, Разбираюсь в подробностях. В Excel тоже ничего нет. Это я написал, т. к. нам проще в ней делать формулы.
Попробую щас там слепить таблицу с ними.

Добавлено через 7 минут
Про таблицу Детали писал не потому, что надо в ней сохранять, а думал оттуда могут браться Коэффы, которые, что ли надо
туда вводить (думал).
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 17:50
Цитата Сообщение от novyi Посмотреть сообщение
нам самим повторить - сделать (ручками) аналогом по подсказке
Неужели мало подсказок было дано?

Цитата Сообщение от novyi Посмотреть сообщение
В Excel тоже ничего нет. Это я написал, т. к. нам проще в ней делать формулы.
За это время (вчера-сегодня) уже можно было сделать справочник коэффициентов.
Со всеми 2500 записями.
0
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183
27.02.2021, 18:04  [ТС]
Открыл Модуль 1, как приказано. Там код:

SELECT Детали.*, Func_Koeff([Код1],[Модиф]) AS Коэфф1
FROM Детали;

Не проясните ли, куда ставить Коэффициенты и код из сообщения #5 ?
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 18:08
Цитата Сообщение от novyi Посмотреть сообщение
Открыл Модуль 1, как приказано. Там код:
SELECT Детали.*, Func_Koeff([Код1],[Модиф]) AS Коэфф1
FROM Детали;
Ну, вообще-то, не приказано, а рассказано.

А, во-вторых, это SQL-текст запроса Запрос1, а вовсе не VBA-код модуля Module1.
0
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183
27.02.2021, 18:13  [ТС]
Цитата Сообщение от Capi Посмотреть сообщение
Сообщение от novyi
1. Как, т.е. куда нужно вводить Коэффициенты для Запроса 1?
В функцию, показанную в сообщении #5.
В выложенной БД эта функция находится в модуле Module1. Посмотрите там.
Я посмотрел, как рассказано. Увидел SQL-текст Запроса 1 без представления о том, куда ставить код из сообщения #5.
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 18:18
Да чёрт...

Правой кнопкой мыши клацайте по названию модуля Module1.
А не по названию запроса Запрос1.

На чём клацаете, то и откроется.

Добавлено через 2 минуты
Цитата Сообщение от novyi Посмотреть сообщение
Увидел SQL-текст Запроса 1 без представления о том, куда ставить код из сообщения #5
Зачем туда "ставить код из сообщения #5"?!
Всё уже поставлено.
Там функция вызывается, которая находиться в модуле.
0
1 / 1 / 0
Регистрация: 21.01.2021
Сообщений: 183
27.02.2021, 18:24  [ТС]
У меня не был виден раздел Модули, нашел.
Корректировать для других Коэффов код так ? :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function Func_Koeff(D As Variant, M As Variant) As Variant
 Dim F As Variant
 If Not IsNull(D) And Not IsNull(M) Then
  If Nz(D) < 3 And Nz(M) < 8 Then
   Select Case D
    Case 1
     F = Choose(M, 3, 4, 0, 0, 0)
    Case 2
     F = Choose(M, 2, 0, 5, 0, 0)
   Case 3
     F = Choose(M, 2, 1, 3, 2, 0)
    Case 4
     F = Choose(M, 3, 4, 5, 0, 1)
   
   End Select
  End If
 End If
 Func_Koeff = F
End Function
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2021, 18:29
Так.

Но лучше, в десятый раз повторяю, таблица коэффициентов.

novyi,

Если Вы настолько далеки от всего этого, зачем Вы взялись?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2021, 18:29

Как составить сложный запрос из многих таблиц
Имеется такая база : как получить на выходе таблицу со сводными данными по каждому челу? например - петя, большая квартира,...

Поиск пользователя по разным полям
Здравствуйте! Столкнулся с задачей которую не могу решить, нужно выводить данные с таблицы пользователей которые имеют соответственное имя,...

Поиск записей в бд по разным полям
Добрый день. По заданию надо создать базу данных в прологе и реализовать поиск и вывод информации о записи по всем полям. Domains ...

Поиск в структуре по разным полям
Доброго времени суток. Нужна небольшая консультация. Задание стандартное, работа со структурой. И одним из пунктов идет поиск.Собственно...

Сортировка массива структур по разным полям
Имеется массив студентов. Подскажите, пожалуйста, как сортировать их по полю &quot;курс&quot; и полю &quot;фамилия&quot; . #include...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru