Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> БД: Движение материалов на складе, эффективен ли данный принцип работы ? 
V
    Опции темы
ravitex
Дата 14.11.2010, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Привет!
оцените, пожалуйста, кто сможет, удачно ли я организовал базу.
Таблицы : 
    Материалы (номер, название)
    Склад (число, материал на склад «+», материал со склада «-»), 
    Период времени для отчета (всегда одна строка : начало, конец периода).
Цель: получить расход за указанный период и остаток на складе к концу указанного периода по каждому материалу.
Реализация получения расхода:
    запрос 1.1 с группировкой и ограничением периода и операциям на складе <0
                = дата | материал | «-» операция за день    
                запрос 1.2 на запрос 1.1 с группировкой по материалам и суммированием по операциям
                = материал | сумма всех «-» операций с ним за период 
Реализация получения остатка:
    запрос 2.1 с группировкой и ограничением до конца периода и и суммированем по операциям
                 = дата | материал | суммарный приход/расход за день    
                 запрос 2.2 на запрос 2.1 с группировкой по материалам и суммированем по сумамм запроса 2.1 
                 = материал | суммарный приход/расход к концу периода (сальдо,остаток).

Таких периодов 12 чт. (12 таблиц).Пользователь сам устанавливает начало/конец каждого и в конце получает общий отчет по 12 периодам.
Надеюсь вопрос понятен.


Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  forum_mater_za_mesjac_04.zip 19,38 Kb
PM MAIL   Вверх
Akina
Дата 15.11.2010, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Нет, неэффективен.
"Приход" и "расход" - это не две разных операции, а одна операция "изменение".


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ravitex
Дата 15.11.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Цитата(Akina @ 15.11.2010,  08:25)
Нет, неэффективен.
"Приход" и "расход" - это не две разных операции, а одна операция "изменение".

А по какому принципу тогда лучше ? Вот здесь ничего понять не могу : http://forum.vingrad.ru/forum/topic-41522.html.
PM MAIL   Вверх
Akina
Дата 15.11.2010, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454





--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ravitex
Дата 15.11.2010, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Цитата(Akina @ 15.11.2010,  14:42)
http://forum.vingrad.ru/act-Search/CODE/sh...25B4/index.html

Слишком узко искал раньше.
Покопался в старых вопросах и продолжаю смотреть,но сложно без опыта. Направление правильное : в таблицах инфо о изменениях, а остальное в Отчете (Report)? Т.е. Можно обойтись без кучи запросов? Фигурирует какая-то сумма с накоплением в Отчете...

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

Это сообщение отредактировал(а) ravitex - 15.11.2010, 17:07
PM MAIL   Вверх
Akina
Дата 15.11.2010, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(ravitex @  15.11.2010,  17:33 Найти цитируемый пост)
в таблицах инфо о изменениях, а остальное в Отчете (Report)? 

В таблицах лежат данные о движении и неких контрольных точках (скажем баланс на начало периода).
Состояние на нужный момент времени считается в запросе.
А уж куда выводить результат запроса для обозримого вида - в отчёт или форму, на печать или в файл - дело а) десятое б) твоё.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ravitex
Дата 20.11.2010, 03:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Не понял я сразу о чем речь. Долго возился, думал и понял, что способов много.

1.

Цитата
"Приход" и "расход" - это не две разных операции, а одна операция "изменение"


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

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


А у меня ведь так и получается: остаток на конец периода находится 2 запросами, 12 месяцев - 24 запроса.
Как бы найти эти контрольные точки "баланс на начало периода" ? Ряд запросов/группировок  или может сделать функцию в VBA (например, FOR от даты до даты).


P.S. был очень удивлен после 10 часов у монитора с 1 макросом, что надо было менять чего-то через regedit, и занести папку в Trusted Location. Только тогда SetValue начала работать...

Это сообщение отредактировал(а) ravitex - 20.11.2010, 03:34
PM MAIL   Вверх
Dar8650
Дата 23.11.2010, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.11.2010

Репутация: нет
Всего: нет



Ты изначально выбрал неправильное направление с 12 -ю таблицами.
Предствать, что тебе будет необходимо предоставить отчет за квартал, или за неопределенный период неопределенного года, как поступишь?
Во первых что у вас торговля?
если Торг, то  У себя я организовал так, динамическая таблица, остатки в которой изменяются, И статическая таблица, в нее скидивается любые действия с товаром, за любой промежуток времени. 
Затем через серию запросов строишь все тебе надо.
Еще одна таблица - Это начальное сальдо (или ввод начальных остатков). Через СКюЛь запросы подсоединяй ее к общей выборке товара на начало. 

Это сообщение отредактировал(а) Akina - 23.11.2010, 16:54
PM MAIL   Вверх
ravitex
Дата 23.11.2010, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Спасибо за ответ.
1. Деятельность : просто склад производства. Материалы, продукты из этих материалов. Пользователь компанует новые продукты из имеющихся материалов. По произведенному продукту высчитывается раход материалов и выводится в виде годового отчета (Список материалов + 12 столбцов-месяцев) . В каждом стобце для каждого материала две ячейки : "израсходовано" и "Остаток на конец месяца".

2. Да, в дополнение к итоговой таблице пользователь должен иметь возможност запроса на любое число. Расход за период, наверное это ведь просто сумма + и -  материалов на складе. Важно еще состояние по каждому материалу к определенной дате.

3. Динамическая и стат. таблицы - хорошая идея. Подумаю над реализацией. Статистическая - понятно как : просто действия из форм "Поступило","Произведено".
А в динамической как? Продукты-материалы в строках и один столбец "Остаток" на требуемую дату?

Это сообщение отредактировал(а) Akina - 23.11.2010, 16:54
PM MAIL   Вверх
Akina
Дата 23.11.2010, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454




M
Akina
Dar8650, ravitex.

Не занимайтесь оверквотингом.




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Dar8650
Дата 23.11.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.11.2010

Репутация: нет
Всего: нет



Производство - это сложно.
Хотя разрешимо. 
Я пошел таким путем. 
вышлю тебе файл схему движения товара на производстве, а там поговорим.

Это сообщение отредактировал(а) Akina - 23.11.2010, 17:44

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  _____.doc 33,50 Kb
PM MAIL   Вверх
ravitex
Дата 28.11.2010, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Цитата(Dar8650 @ 23.11.2010,  17:37)
 а там поговорим.

Спасибо за схему.
В данном случае делаю для отца (чтоб удобней было следить за складом) и все ,вроде, не так сложно. База необхдима для примерного контроля.
Вот , что пытаюсь сделать : см. фаил.
Проблема в принципе построения, в "системе".

Расход Компонентов - решается запросами
Расход Компонентов на период - решается запросами

А вот остаток: пока не вижу способа кроме полного перерасчета всех операций со складом до данного числа (через запросы, суммы и тд). Исхожу из возможности исправить, например, ошибку ввода прихода/расхода за,  например, прошлую неделю (вдруг выяснится, что юзер ошибся и сможет по накладным выявить правильное число). Грубо : скажем 20 изменений в день, 7300 изменений в год, 36500 изменений через 5 лет - т.е. в конце 5-го года система должна будет "посчитать" мах 36000 позиций - разве это страшно ? 
Кажется, что этот способ единственнен и в случае годового отчета. Ну как еще зафиксировать остаток на каждый месяц, например, позапрошлого года ?

Итого делаю запросы  по компонентам:
1 группа запросов : Все поступления до 31.01, Все поступления до 28.02 , Все поступления до 31.03 ....  (год вводится ползователем)
2 группа запросов : Все расходы до 31.01, Все расходы до 28.02 , Все расходы до 31.03 ...

Сделано за месяц : [Все расходы до 28.02 ] - [Все расходы до 31.01]
Остаток к концу месяца : [Все поступления до 31.01] - [Все расходы до 31.01]
+ спец запрос на любое число/период

Это сообщение отредактировал(а) ravitex - 29.11.2010, 02:09

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Shema.doc 33,50 Kb
PM MAIL   Вверх
Akina
Дата 29.11.2010, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(ravitex @  29.11.2010,  00:35 Найти цитируемый пост)
А вот остаток: пока не вижу способа кроме полного перерасчета всех операций со складом до данного числа (через запросы, суммы и тд). 

Ну совершенно стандартная ситуация. Вот только зачем куча однотипных запросов, отличающихся только датой? сделай один, принимающий дату как параметр...

Цитата(ravitex @  29.11.2010,  00:35 Найти цитируемый пост)
как еще зафиксировать остаток на каждый месяц, например, позапрошлого года ?

Есть такое понятие как закрытие периода. Т.е. контрольная точка, на которую считаются и фиксируются остатки. Операции до неё сносятся в архив, а результат считается с этого момента неизменяемым, и является точкой отсчёта для всех расчётов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ravitex
Дата 29.11.2010, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 4.11.2010
Где: Таллинн

Репутация: нет
Всего: нет



Цитата(Akina @ 29.11.2010,  08:49)
Есть такое понятие как закрытие периода. 

Ну тепер кажется начинает прояснятся!
Те на основной форме кнопка "Закрытие периода". После нее:
1.Копирование содержимого таблиц "Поступление компонента" и "Производство продукта" в архивы и очищение этих таблиц. /Append Query,..../
2. Изменение таблицы "Остатки на начало отчетного периода" в соответсвие с запросом по остаткам на дату нажатия кнопки "Закрытие периода". /Update+Append(в случае новых) Query/

Цитата(Akina @ 29.11.2010,  08:49)
Вот только зачем куча однотипных запросов, отличающихся только датой? сделай один, принимающий дату как параметр 


Как сделать предствавляю (запрос берет дату из формы, например), но как тогда вывести 12 запросов с разными параметрами в годовой отчет в то время когда это один и тот же запрос? или надо как-то копировать его результаты в отчет, но что будет при изменениях...
PM MAIL   Вверх
Akina
Дата 29.11.2010, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(ravitex @  29.11.2010,  13:06 Найти цитируемый пост)
Копирование содержимого таблиц "Поступление компонента" и "Производство продукта" в архивы и очищение этих таблиц

Ну не очистка, а удаление перенесённых а архив записей. Обычно закрытие периода выполняется, когда уже следующий в разгаре, и часть записей в таблицах, относящихся к текущему периоду, само собой, остаётся на месте.
Цитата(ravitex @  29.11.2010,  13:06 Найти цитируемый пост)
Изменение таблицы "Остатки на начало отчетного периода" 

Нет. Остатки на начало периода - это всего-лишь особый тип операции "Приход".



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.