Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: дайте совет – не могу наладить учет движения товара
 
 автор: 3750905   (20.12.2009 в 13:19)   личное сообщение
 
 

У меня учет товара сдаваемого в аренду.
Один и тот же товар периодически приходит и уходит с разных складов, т.е. может быть сдан на одном складе, а возвращен на другой склад.
Сейчас мой учет построен в одной таблице, в которой учитывается приход/уход товара по складам.
Получается, что на один товар – много записей по приходу/уходу на разных складах.
Я совершенно не понимаю, как в запросе или форме отобразить – какой товар, где сейчас находиться.
Может нужно принципиально изменить схему учета?

  Ответить  
 
 автор: ДрЮня   (20.12.2009 в 13:59)   личное сообщение
 
 

навскидку:
к таблице "Товар" добавить еще таблицу "Движение товара" с полями:
- ID товара;
- ID склада, где он находиться;
- Статус товара ("на складе", "сдан в аренду", "в ремонте", "неизвестен", и проч.);
- Дата сдачи товара в аренду;
- Дата планируемого возвращения товара на склад;
- ID склада, куда планируется вернуть товар;
ну и проч.

  Ответить  
 
 автор: 3750905   (20.12.2009 в 15:44)   личное сообщение
 
 

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

  Ответить  
 
 автор: Lukas   (20.12.2009 в 15:59)   личное сообщение
 
 

А для какого интересу, как думаете, ДрЮня предложил ввести атрибут "- Дата сдачи товара в аренду"?

  Ответить  
 
 автор: 3750905   (20.12.2009 в 17:07)   личное сообщение
 
 

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

  Ответить  
 
 автор: Гоблин   (20.12.2009 в 17:38)   личное сообщение
 
 

Создашь групповой запрос по последней дате и дело в шляпе. Запускать будешь нажатием кнопки. Товар в одной табле, а его движение в подчиненных. Собственно со структуры начинать надо.
В Борее очень похожее есть.

  Ответить  
 
 автор: 3750905   (20.12.2009 в 17:42)   личное сообщение
 
 


Создашь групповой запрос по последней дате



А как это сделать?

/я очень зеленый в SQL/

  Ответить  
 
 автор: Denis V.   (20.12.2009 в 18:01)   личное сообщение
 
 

Для начала откройте конструктор запросов... далее по обстановке ;-) (могу дать наводку: жмите чаще F1, не стесняйтесь)

  Ответить  
 
 автор: 3750905   (20.12.2009 в 18:11)   личное сообщение
 
 


жмите чаще F1


Вот она помощь профессионалов!

  Ответить  
 
 автор: Denis V.   (20.12.2009 в 18:21)   личное сообщение
 
 

Я не профессиронал, а просто любитель поболтать немного на форуме. Может за Вас и напишут запрос на другом форуме, но легче Вам от этого не станет, когда интернет неожиданно кончится (тьфу, тьфу, тьфу), а начальство попросит срочно (!) подготовить отчёт ;-)

  Ответить  
 
 автор: osmor   (20.12.2009 в 21:18)   личное сообщение
 
 

IMHO, с таким подходом вы рискуете совсем не получить никакой помощи.
Если вы приедете в автосервис и скажите "Хочу сам поменять прокладку блока цилиндров. Помогите мне снять мне двигатель и головку блока, ну а дальше я сам". Как думаете что вам скажут?
Как выходите учитывать движение не создавая запись для каждого перемещения?
Я бы предложил сделать немного не так как предложено, сделать таблицу с типами операции и таблицу с перемещениями.


Типы операций

ID
Название (возврат, выдача, перемещение...)
Направление (приход, расход)



Перемещения

ID
Дата
Тип операции
код товара
Склад



Все остальные поля (срок выдачи, кому выдано и т.д.) в отдельную таблицу со ссылкой на таблицу с движениями.
Любое движение заносится в эту таблицу
Для получения текущего состояния есть "дата операции"
Отобрав самую новую, по дате, запись для товара, вы увидите выдан он или вернулся и на каком складе

  Ответить  
 
 автор: 3750905   (20.12.2009 в 23:38)   личное сообщение
 
 


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


Я это уже пробовал, возможно не тем методом.
Я делаю группировку по максимальному значению даты для группы товара. В таком запросе я могу получить только два столбца - дата и товар, как только я добавляю другое поле (например "склад"), группировка сразу же добавляет записи по этим складам (товар приходил/уходил ранее по разным складам). В результате - в запросе один и тот же товар повторяется.

  Ответить  
 
 автор: osmor   (21.12.2009 в 09:07)   личное сообщение
 
 

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

  Ответить  
 
 автор: 3750905   (20.12.2009 в 20:49)   личное сообщение
 
 

Это не решает задачу, т.к. я не могу получить один список со всеми данными (товар, склад).
Подчиненная форма к "товару" это не подходящее решение.

  Ответить  
 
 автор: час   (20.12.2009 в 16:58)   личное сообщение
 
 

навскидку:
к таблице "Товар" добавить еще таблицу "Движение товара" с полями:
- ID товара;
- ID склада, где он находиться;
- Статус товара ("на складе", "сдан в аренду", "в ремонте", "неизвестен", и проч.);
- Дата сдачи товара в аренду;
- Дата планируемого возвращения товара на склад;
- ID склада, куда планируется вернуть товар;
ну и проч






Если можн - мне на мыло такую табличку.......
Потому как и проч....
это мне ещё не известно

  Ответить  
 
 автор: kot_k_k   (21.12.2009 в 09:33)   личное сообщение
 
 

если я понял правильно - учет товара должен вестись партиями - для возможности отследить перемещение конктерного ТМЦ, для этого в таблу Товары вносится поле ID_Получение, Которое хранит № партии, т.е. ID первого попадания данной партии на склад. и по нему производим учет который нам нужен - где конкретно и сколько находится.

  Ответить  
 
 автор: Denis V.   (21.12.2009 в 10:07)   личное сообщение
 
 

Как я понял, в данном случае товар штучный ;-)

  Ответить  
 
 автор: Силblч   (21.12.2009 в 10:13)   личное сообщение
 
 

а какие проблемы с расфасовкой?

при приеме товара указывается - в каких единицах

колбаса, мсяо... все просто

  Ответить  
 
 автор: kot_k_k   (21.12.2009 в 10:14)   личное сообщение
 
 

а какая разница - ведь на складе м/б несколько одинаковых ТМЦ, и контроль нужен за конкретным, хорошо если серийник есть а если нет. вот и должен лепиться хоть какой ярлык и по нему все отслеживается.

  Ответить  
 
 автор: Силblч   (21.12.2009 в 10:10)   личное сообщение
 
 

шо удалось вспомнить
таблица(справочник) Товаров (tbGoods)
таблица Поставок товара (tbDelivery)
таблица Движений товара (tbMov)
таблица Документов (tbDoc)
таблица Остатков на сейчас (tbSklad)

При поступлении товара (tbDocType - приходный документ) на склад (tbSklad) создаются записи в таблице tbDelivery и партии поставки присваивается уникальный ключ deliveryID и goodsID

в таблице tbMov фиксируется движение товара idFrom, idTo <- контрагенты (Откуда, Куда) из справочника контрагентов. понятно, что м.б. как внешним контрагентом, так внутренним подразделением

в таблице tbDoc - хранятся т.н. "шапки документов" с доп параметрами - типа документа, расчитаными полями по накладной, аналитические счета и др...

в таблице tbSklad фиксируется остаток по поставке и товару на внутренних подразделениях или внешних, в случае, если это товар "на комиссию" и, соответственно, уменьшается или увеличивается в зависимости от движения (приход или расход)

в общих чертах....

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList