Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011

Ввод танных в 1 табл., расчет значения в запросе соотв. значению 2 таблици

07.04.2013, 17:46. Показов 1867. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте Уважаемые знатоки, помогите решить проблемму, правильно создать запрос с выражением.
Сам я что то не могу придумать как, туповат еще в этом.
1. Есть 2 таблицы:
#График_Рабочего_Времени
#Часы
Если в таблице #График_Рабочего_Времени, в поле - "1" проставить букву - к примеру "Н", то в запросе -

*График_Р/В, в расчетном поле - РВД1 появилось значение из таблицы #Часы, соответствующее букве "Н" и полю

"ВД" равное - "5", в расчетном поле - РВП1 значение соответствующее букве "Н" и полю "ВП" равное - "7".
2. Также вычислить количество заполненных полей
3. Сумму всех расчитанных полей

Заранее благодарен

Добавлено через 3 минуты
Вот здесь пример

Добавлено через 10 минут
Никак не могу прикрепить архив с БД
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2013, 17:46
Ответы с готовыми решениями:

Расчет значения функции по введенному значению и графику
Нужна помощь с программой по данному графику.Нужно написать программу для расчета значения функции у по введенному значению х, если задан...

Данные в отчете: расчет значения по формуле в запросе 1С.
Есть отчет "по выработке" ,в нем есть колонка результативность , как сделать так чтобы : Сумма результативности по определенному...

отбор одинаковых по значению позиций из табл.части
нужно чтобы при нажатии на кнопку посчиталось количество номенклатуры (позиций)в табличной части документа у которых одинаковые значения...

17
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
07.04.2013, 17:50  [ТС]
БД с таблицами
Вложения
Тип файла: zip График работы-3.zip (38.1 Кб, 21 просмотров)
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
08.04.2013, 03:20
Никто не работает напрямую с таблицами, для этого есть формы. Всё, что вы запланировали, вы сможете сделать только в формах, на событии после обновления и т.д.
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
08.04.2013, 10:52  [ТС]
Извиняюсь, возможно я не так выразился, имелось в виду, что данные вводятся в форму табличного вида.
Сам я попытался с помощью запросов попробовать, получается настолько громоздко и сложно, что наверное не смогу осилить, 2 числа из 31 только осилил, такого НАКУРОЛЕСИЛ .
Подскажите как можно попроще, с примером, сам я не силен в VB. Процедуру обработки событий сам не осилю.
В прилагаемой БД на 2-3 полях на примере покажите как это делается, а дальше я уж сам по образцу.
Заранее благодарен.
Вложения
Тип файла: zip График работы-4.zip (502.8 Кб, 11 просмотров)
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
08.04.2013, 11:34
Задача решаема в запросе с помощью функции DLookUp("Поле";"Таблица";"Условия отбора").
Например, для расчетеного поля РВД1: DLookUp("ВД";"Часы";"Буква = '" & 1 & "'")
- это если значение поля 1 - текстовое; если числовое, то без одинарных кавычек
1
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
08.04.2013, 12:45
kmv-puh, см. во вложении два варианта: запрос График_Р/В, запрос "Запрос1".

"Саботажников" (решетки, звездочки) в именах таблиц и запросов убрал.
Вложения
Тип файла: rar Графикработы-3.rar (13.2 Кб, 11 просмотров)
1
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
08.04.2013, 13:15  [ТС]
Спасибо - minob, что всегда откликаетесь на наши проблеммы, но я не настолько силен в програмировании и САМОСТОЯТЕЛЬНОМ написании запросов. Не могли ли вы на примере БД - "График работы-5" в форме - "График работы" - привести наглядный пример, как это будет работать?
А то я практически ничего не понял.
1. В верхнюю таблицу - вводим букву в поле 1, а в нижней таблице или (Запросе), в аналогичном поле появляется значение = данной букве, соответствующей значению поля - ЧД из таблицы #Часы.
Вложения
Тип файла: zip График работы-5.zip (549.7 Кб, 10 просмотров)
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
08.04.2013, 14:04
Цитата Сообщение от kmv-puh Посмотреть сообщение
А то я практически ничего не понял.
В первом сообщении вы выложили только 2 таблицы, какой то недоделанный запрос и писали
Цитата Сообщение от kmv-puh
1. Есть 2 таблицы:
#График_Рабочего_Времени
#Часы
Если в таблице #График_Рабочего_Времени, в поле - "1" проставить букву - к примеру "Н", то в запросе -

*График_Р/В, в расчетном поле - РВД1 появилось значение из таблицы #Часы, соответствующее букве "Н" и полю

"ВД" равное - "5", в расчетном поле - РВП1 значение соответствующее букве "Н" и полю "ВП" равное - "7".
Я вам и сделал два варианта такого запроса, который для всех записей и по всем дням таблицы График_Рабочего_Времени формирует соответствующие значения полей РВД1 и РВП1.
Ни о каких формах речь не шла.
Да и нужно ли создавать вспомогательную таблицу и городить дополнительную форму, когда все решается запросом.
1
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
08.04.2013, 14:31  [ТС]
Спасибо, что вразумили. Я так и думал, что данная проблемма не разрешима, а то месяц бы над ней бился и все в пустую.
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
08.04.2013, 14:36
Цитата Сообщение от kmv-puh Посмотреть сообщение
Я так и думал, что данная проблемма не разрешима
Не понял, о какой проблеме идет речь?
Я ничего о неразрешимости каких-либо проблем не говорил.
1
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
08.04.2013, 15:28  [ТС]
Для меня данная проблемма неразрешима, - ТЕМНЫЙ ЛЕС, я даже не могу понять что за ВИРТУАЛЬНАЯ таблица или запрос - Q там в запросах присутствует.Это слишком тяжело с моими познаниями.

Добавлено через 46 минут
Может есть какое-нибудь решение задачи попроще? Кто знает подскажите пожалуйста.
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
08.04.2013, 19:34
Цитата Сообщение от kmv-puh
Может есть какое-нибудь решение задачи попроще?
Если считаете, что задуманное вами проще, хотя я считаю это сродни самоистязанию, то замените в запросе *График_Работы_Расчет в DLookup-ах 1 на [1], 2 на [2], и т.д. до 31.
1
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
08.04.2013, 20:02  [ТС]
Ура!!! Получилось!!! - minob - ВАША МУДРОСТЬ ПОИСТИНЕ БЕЗГРАНИЧНА.
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
10.04.2013, 05:47  [ТС]
Помогите пожалуйста еще в 2-х случаях.
Как в БД - "График работы-6" вычислить в запросе - "*График_Работы_Расчет"

1.количество заполненных полей от РВД1 до РВД31
2.сумму полей от РВД1 до РВД31, а то простым сложением не получается, просто перечисляются значения полей

Заранее благодарен
Вложения
Тип файла: zip График работы-6.zip (538.0 Кб, 17 просмотров)
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
10.04.2013, 07:51
kmv-puh, пара вопросов:
1. Почему в таблице #Часы в записи с кодом 13 вместо буквы К стоит Д?
2. Почему в форме "пфт#ГРАФИК-по запрсу" поле 11 - свободное?

Посмотрите во вложении запрос ZZZ_перекрестный. Там все в одном "флаконе" и то, что делает ваш "*График_Работы_Расчет", и то, о чем вы просите сейчас.
Вложения
Тип файла: rar Графикработы-6.rar (107.1 Кб, 13 просмотров)
1
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
10.04.2013, 20:53  [ТС]
minob - Огромное спасибо за помощь. Указанные Вами выше недочеты устранил (Это мои ошибки по невнимательности).
Однако прошу простить меня, не совсем точно и полно сформулировал свой вопрос (почему и
спрашивал о сложении значений в запросе).
Дело в том, что к примеру Иванов И.и. 2-го и 3-го числа работает только Ночь, 2 буквы - "Н"
подряд, а она подразумевает, что 2-го числа отработано 5 часов до полуночи (Поле - "ЧД" таблицы
#Часы) и 7 часов после полуночи (Поле - "ЧП" - которое сначала присутствовало, потом временно
удалил), уже 3-го числа и опять 3-го числа отработано 5 часов до полуночи (Поле - "ЧД") и 7
часов после полуночи (Поле - "ЧП") уже 4-го числа.
Соответственно в нихней таблице формы "График работы" у Иванова И.И. должно отобразиться не 5 и 5, 2-го и 3-го числа, а 2-го = 5, 3-го = 12, 4-го = 7 и т.д.
Аналогично будет и с учетом часов "Ночные", поля "НД" и "НП" в другом запросе.

Если не сильно сложно помогите, заранее Благодарен. С Уважением kmv-puh/
Вложения
Тип файла: zip График работы-7.zip (591.5 Кб, 27 просмотров)
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
10.04.2013, 21:57  [ТС]
И ещё, куда то в запросах zzz пропало поле - "КодСотрудника", думаю его нужно прописать в таблице "Q", но у меняпочему то не получаеися.
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
11.04.2013, 12:38
Цитата Сообщение от kmv-puh Посмотреть сообщение
... не совсем точно и полно сформулировал свой вопрос ...
Дело в том, что к примеру Иванов И.и. 2-го и 3-го числа работает только Ночь, 2 буквы - "Н"
подряд, а она подразумевает, что 2-го числа отработано 5 часов до полуночи (Поле - "ЧД" таблицы
#Часы) и 7 часов после полуночи уже 3-го числа и опять 3-го числа отработано 5 часов до полуночи (Поле - "ЧД") и 7 часов после полуночи (Поле - "ЧП") уже 4-го числа.
Соответственно в нихней таблице формы "График работы" у Иванова И.И. должно отобразиться не 5 и 5, 2-го и 3-го числа, а 2-го = 5, 3-го = 12, 4-го = 7 и т.д.
Запрос ZZZ
SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT Код_ГРАФИКА, КодСОТРУДНИКА_График, День, [#Часы].ЧД, [#Часы].ЧП, [#Часы].НД, [#Часы].НП
FROM 
(SELECT Код_ГРАФИКА, КодСОТРУДНИКА_График, 0 AS День, [_31] AS Буква FROM [#График_Рабочего_Времени]
 UNION ALL
 SELECT Код_ГРАФИКА, КодСОТРУДНИКА_График, 1, [1] FROM [#График_Рабочего_Времени]
 UNION ALL
 SELECT Код_ГРАФИКА, КодСОТРУДНИКА_График, 2, [2] FROM [#График_Рабочего_Времени]
 UNION ALL
...
 SELECT Код_ГРАФИКА, КодСОТРУДНИКА_График, 31, [31] FROM [#График_Рабочего_Времени]
) AS Q LEFT JOIN [#Часы] ON Q.Буква=[#Часы].Буква
ORDER BY 1, 3
Насколько понял, день -31 - последний день предыдущего месяца. Для расчета времени удобно, чтобы он был нулевым (0), что и сделано в запросе. Вам нужно только учесть это для соответствующего поля формы "пфт#ГРАФИК-по запрсу".
Запрос ZZZ_перекрестный
SQL
1
2
3
4
5
6
7
8
TRANSFORM FIRST(Nz(Z1.ЧД,0)-0+Nz(Z2.ЧП,0)) AS F_ЧДП
SELECT Z1.Код_ГРАФИКА, 
       Z1.КодСОТРУДНИКА_График, 
       -SUM(Z1.День>0 AND Z1.ЧД) AS Количество, 
       -SUM((Nz(Z1.ЧД,0)-0+Nz(Z2.ЧП,0))*(Z1.День>0)) AS [Всего часов]
FROM ZZZ AS Z1 LEFT JOIN ZZZ AS Z2 ON (Z1.День=Z2.День+1) AND (Z1.Код_ГРАФИКА=Z2.Код_ГРАФИКА)
GROUP BY Z1.Код_ГРАФИКА, Z1.КодСОТРУДНИКА_График
PIVOT Z1.День
Цитата Сообщение от kmv-puh
И ещё, куда то в запросах zzz пропало поле - "КодСотрудника", думаю его нужно прописать в таблице "Q", но у меняпочему то не получаеися.
Пропажу нашел
Q - не таблица, а подзапрос.
Не получается, потому что Access при сохранении запроса, заменяет исходные круглые скобки, в которые был заключен подзапрос, прямыми (квадратными) и еще за закрывающейся прямой ставит точку. Кроме того, подзапрос содержит некоторые имена, заключенные в квадратные скобки. Теперь если такой запрос попытаться откорректировать и запустить, не заменив предварительно квадратные скобки подзапроса на круглые и не удалив точку, то Access начинает путаться в скобках и выдает сообщение об ошибке. Выход: или каждый раз при коррекции заменять скобки и удалять точку, или хранить текст запроса в текстовом файле и, каждый раз, для коррекции копировать его оттуда и сохранять после коррекции.
Данный баг (устранен в версиях болше 2003, привнеся другой ) - одна из причин, почему не рекомендуется использовать в именах пробелы, а также другие неудобоваримые символы, которыми у вас пестрит БД, например, # - *. Ведь в запросах такие имена приходится заключать в квадратные скобки.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2013, 12:38
Помогаю со студенческими работами здесь

Получение значения поля формы (ввод даты) в запросе
столкнулся с проблемой считывания с текстового поля. (списки, переключатели читаются нормально) тели.*, Нагрузка.Цена, Нагрузка.Нагрузка,...

Примеры применения значения 1 одного множества к значению 1 другого, значения 2 - к значению 2 и т.д
Тема c используемым кодом. I. Применение значений времени к файлам. 1) Деление медиафайла программой mkvmerge. Выполняется до конца, но...

Ручной ввод в табл
Задана табличка StringGrid, есть кнопка. Нужно по нажатии этой кнопки, чтобы врубалось ручное заполнение таблички. Таблица 3х3.. Help :)

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

Добавить из Табл.-ЖурналДежурствБланк в Табл.-ЖурналДежурств 1836 записей - КНОПКОЙ
Всем Здравия и Хорошего настроения! Создаю БД для Садового Товарищества, (типа готовлю телегу зимой), -учет дежурств. В нашем саду...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru