Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2015, 08:56   #1
foxter1989
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 15
По умолчанию Подсчет суммы и количества заполненных столбцов

Добрый день. Имеется маленькая (пока) база.
Есть 31 столбец со значениями типа "Числовое" и 2 столбца "Отработано за месяц дней" и "Отработано за месяц часов" тоже "Числовое".

Соответственно в "Отработано за месяц дней" нужно посчитать количество заполненных столбцов (может быть заполнено от 1 до 30 столбцов из 31), а в "Отработано за месяц часов" сумма значений этих столбцов.

Пытаюсь создать запрос типа:

Код:
SELECT D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, 
D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31, 
tab_Rab_Tabel!D1 + tab_Rab_Tabel!D2 + tab_Rab_Tabel!D3 + tab_Rab_Tabel!D4 + 
tab_Rab_Tabel!D5 + tab_Rab_Tabel!D6 + tab_Rab_Tabel!D7 + tab_Rab_Tabel!D8 + 
tab_Rab_Tabel!D9 + tab_Rab_Tabel!D10 + tab_Rab_Tabel!D11 + tab_Rab_Tabel!D12 + 
tab_Rab_Tabel!D13 + tab_Rab_Tabel!D14 + tab_Rab_Tabel!D15 + tab_Rab_Tabel!D16 + 
tab_Rab_Tabel!D17 + tab_Rab_Tabel!D18 + tab_Rab_Tabel!D19 + tab_Rab_Tabel!D20 + 
tab_Rab_Tabel!D21 + tab_Rab_Tabel!D22 + tab_Rab_Tabel!D23 + tab_Rab_Tabel!D24 + 
tab_Rab_Tabel!D25 + tab_Rab_Tabel!D26 + tab_Rab_Tabel!D27 + tab_Rab_Tabel!D28 + t
ab_Rab_Tabel!D29 + tab_Rab_Tabel!D30 + tab_Rab_Tabel!D31 AS [Отработано за месяц часов]
FROM tab_Rab_Tabel;

Но в поле никаких значений не появляется.
Странность какая то.

Покажите, пожалуйста, где я не прав?


Или может быть есть другое? Менее долбанутое как у меня решение проблемы?
Вложения
Тип файла: zip Tabel.zip (53.4 Кб, 14 просмотров)

Последний раз редактировалось foxter1989; 28.04.2015 в 09:00.
foxter1989 вне форума Ответить с цитированием
Старый 28.04.2015, 09:52   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

Код:
SELECT D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, 
D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31, 
 nz(D1,0)  +   nz(D2,0) +  nz(  D3 ,0) +  nz(  D4 ,0) +  nz( D5 ,0) 
+  nz(  D6 ,0) +  nz(  D7 ,0) +  nz(  D8 ,0) +  nz(  D9 ,0) 
+  nz(  D10 ,0) +  nz(  D11 ,0) +  nz(  D12 ,0) +  nz(  D13 ,0) 
+  nz(  D14 ,0) +  nz(  D15 ,0) +  nz(  D16 ,0) +  nz(  D17 ,0) 
+  nz(  D18 ,0) +  nz(  D19 ,0) +  nz(  D20 ,0) +  nz(  D21 ,0) 
+  nz(  D22 ,0) +  nz(  D23 ,0) +  nz(  D24 ,0) +  nz(  D25 ,0) 
+  nz(  D26 ,0) +  nz(  D27 ,0) +  nz(  D28 ,0) +  nz(  D29 ,0) 
+  nz(  D30 ,0) +  nz(  D31 ,0) AS [Отработано за месяц часов]
FROM tab_Rab_Tabel;
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 28.04.2015, 09:55   #3
foxter1989
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 15
По умолчанию

О. Спасибо. А поясните, пожалуйста, принцип действия nz(D1,0), что б я таких вопросов не задавал в будущем...

И можно ли таким методом посчитать количество заполненных столбцов?
foxter1989 вне форума Ответить с цитированием
Старый 28.04.2015, 10:00   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

Код:
SELECT D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, 
D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31, 
 iif(nz(D1,0) =0,0,1)+iif(nz(D2,0) =0,0,1).............
nz обрабатывает пустые ячейки, присваивая вместо пустоты --значение по умолчанию
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 28.04.2015, 10:07   #5
foxter1989
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 15
По умолчанию

Огромное спасибо.
Буду теперь думать как привинтить Count ко всему этому делу
foxter1989 вне форума Ответить с цитированием
Старый 28.04.2015, 12:31   #6
foxter1989
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 15
По умолчанию

Если кого заинтересует - выложу этот табель с выборкой по времени и подсчетом суммы. Отдельный код:

Код:
SELECT RT_ID, Rab_ID, RTD_ID, TDate, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, 
D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31, 
 nz(D1,0)  +   nz(D2,0) +  nz(  D3 ,0) +  nz(  D4 ,0) +  nz( D5 ,0) 
+  nz(  D6 ,0) +  nz(  D7 ,0) +  nz(  D8 ,0) +  nz(  D9 ,0) 
+  nz(  D10 ,0) +  nz(  D11 ,0) +  nz(  D12 ,0) +  nz(  D13 ,0) 
+  nz(  D14 ,0) +  nz(  D15 ,0) +  nz(  D16 ,0) +  nz(  D17 ,0) 
+  nz(  D18 ,0) +  nz(  D19 ,0) +  nz(  D20 ,0) +  nz(  D21 ,0) 
+  nz(  D22 ,0) +  nz(  D23 ,0) +  nz(  D24 ,0) +  nz(  D25 ,0) 
+  nz(  D26 ,0) +  nz(  D27 ,0) +  nz(  D28 ,0) +  nz(  D29 ,0) 
+  nz(  D30 ,0) +  nz(  D31 ,0) AS [Отработано за месяц часов]
FROM tab_Rab_Tabel
WHERE (((tab_Rab_Tabel.TDate) Between [Forms]![frm_RabTabel]![Отчетный период с] And [Forms]![frm_RabTabel]![Отчетный периот по]));
и соответственно сам файл.

Буду очень признателен, если подскажете как организовать подсчет этих же столбцов... В смысле количество заполненных столбцов
Вложения
Тип файла: zip Tabel.zip (56.1 Кб, 16 просмотров)

Последний раз редактировалось foxter1989; 28.04.2015 в 13:32.
foxter1989 вне форума Ответить с цитированием
Старый 28.04.2015, 14:00   #7
foxter1989
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 15
По умолчанию

Что то никак не получается прикрутить мне подсчет столбцов.
Подскажите, пожалуйста, что добавить перед обсчетом суммы ячеек, что бы посчитало количество заполненных?
foxter1989 вне форума Ответить с цитированием
Старый 29.04.2015, 08:02   #8
foxter1989
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 15
По умолчанию

Хм. Объединить в один запрос не получилось, но работать через связь запросов не представляется возможным.
Собственно:

Запрос1:
Код:
SELECT tab_Rab_Tabel.*, Запрос2.[Отработано за месяц дней] Запрос3.[Отработано за месяц часов]
FROM (tab_Rab_tabel LEFT JOIN Запрос2 ON tab_Rab_Tabel.Rab_ID = Запрос2.Rab_ID) LEFT JOIN Запрос3 ON tab_Rab_Tabel.Rab_ID = Запрос3.Rab_ID
WHERE (((tab_Rab_Tabel.TDate) Between [Forms]![frm_RabTabel]![Отчетный период с] And [Forms]![frm_RabTabel]![Отчетный периот по]));
Запрос2:
Код:
SELECT Rab_ID, COUNT(*) AS [Отработано за месяц дней]
FROM tab_Rab_Tabel
GROUP BY Rab_ID;
Запрос3:
Код:
SELECT RT_ID, Rab_ID, RTD_ID, TDate, D1, D2, D3, D4, D5, D6, 
D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, 
D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31, 
nz(D1,0)  +   nz(D2,0) +  nz(  D3 ,0) +  nz(  D4 ,0) +  nz( D5 ,0) 
+  nz(  D6 ,0) +  nz(  D7 ,0) +  nz(  D8 ,0) +  nz(  D9 ,0) 
+  nz(  D10 ,0) +  nz(  D11 ,0) +  nz(  D12 ,0) +  nz(  D13 ,0) 
+  nz(  D14 ,0) +  nz(  D15 ,0) +  nz(  D16 ,0) +  nz(  D17 ,0) 
+  nz(  D18 ,0) +  nz(  D19 ,0) +  nz(  D20 ,0) +  nz(  D21 ,0) 
+  nz(  D22 ,0) +  nz(  D23 ,0) +  nz(  D24 ,0) +  nz(  D25 ,0) 
+  nz(  D26 ,0) +  nz(  D27 ,0) +  nz(  D28 ,0) +  nz(  D29 ,0) 
+  nz(  D30 ,0) +  nz(  D31 ,0) AS [Отработано за месяц часов]
FROM tab_Rab_Tabel;

Каждый по отдельности - рабочий.
Если работать перекрестными запросами - все прекрасно выводит.

НО. В форме, куда поступают данные запроса, стало не возможным вносить изменения.
Цитата:
объект recordset не является обновляемым
Пытался все через один запрос сделать - то же не получается
Цитата:
RT_ID не является частью агрегатной функции
.
Собственно так он ругается на все.

Может все же есть возможность как то объединить все это дело?

Стажа работы с Access - у меня никакущий, вот и случаются у меня эти казусы.
foxter1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет количества элементов ,больше суммы предшествующих в одномерном массиве Felixjkee Помощь студентам 0 09.01.2013 11:30
Подсчет заполненных ячеек, удовлетворяющих условию Anechka_ Microsoft Office Excel 3 30.03.2012 11:47
подсчет количества и суммы остатка в приходно-расходной книге Дельфина Microsoft Office Excel 6 24.04.2011 17:33
Подсчет количества заполненных строк. fuzzylogic Microsoft Office Excel 8 11.03.2010 18:37
подсчет заполненных ячеек extremobile Microsoft Office Excel 2 28.05.2009 17:26