0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
1

Создание базы данных

30.08.2012, 07:16. Показов 3908. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Давно не пользовалась Access. Прошу помощи в создании базы данных.
Смысл такой: есть номенклатура материалов (мука, вода, соль), из этого делается хлеб.

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

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

3. (заоблачные планы) по каждому материалу могли бы сделать такую штуку, как минимальное допустимое количество остатка на складе, чтобы не останавливалось производство и соответственно заказывать материалы заранее

моя проблема состоит в том, что я пока не понимаю как в Access будет постоянно обновлять информация по поступлению, списанию и остаткам как материалов, так и готовой продукции, то ли необходимо заводить данные с помощью таблицы или пользоваться запросом - не понимаю(((

эта схема отслеживания материалов и готовой продукции очень похожа на 1С бухгалтерию, но за неимением ее, я хочу продумать это в Access.
Спасибо за любую помощь!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2012, 07:16
Ответы с готовыми решениями:

Создание базы данных
Здравствуйте,помогите создать базу данных. -4 связанных таблиц с подстановками; -3 различных...

Создание базы данных
Работаю бухгалтером в поликлинике. Необходимо создать базу данных, чтоб впоследствии можно...

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

Создание базы данных
Добрый вечер! Подскажите пожалуйста, как мне сделать тест в Access всего из 5 вопросов, в каждом по...

17
2092 / 1168 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
30.08.2012, 10:00 2
В нашем разделе есть Путеводитель по форуму, в котором собраны полезные ссылки. Есть несколько примеров бд склад, т.к. это распространненная тема для бд, например
1
0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
30.08.2012, 12:18  [ТС] 3
Ameli, хочу попросить посмотреть мою базу данных? Я хочу, чтобы в таблице "Расчет материала" отображались все данные (Сн, приход, расход, Ск). На данный момент я добилась, что отображается приход и расход путем составления запроса. Также считается остаток на конец дня, но не отображается в этой таблице. Не пойму, как сделать, чтобы и сальдо конечно считалось автоматически, сейчас я его ввожу руками. Помогите пожалуйста. Спасибо
Вложения
Тип файла: zip db1.zip (48.2 Кб, 78 просмотров)
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.08.2012, 12:28 4
Marishkin, вы не там пишете формулу расчета. Для вычисления расчетного поля, выражение должно быть записано в свойстве Данные (ControlSource). И второе, на случай пустого значение в каком-либо из составляющих полей, надо применять функцию NZ с дефолтным значение 0
Visual Basic
1
=Nz([сальдо начальное];0)+Nz([поступило];0)-Nz([израсходовано];0)
Кстати, а почему бы и конечное сальдо не считать в запросе? Также как приход и расход. Если бы приход и расход вводился в форме, то вычисляемое поле обосновано, но вы же получаете их из запроса. И смысл вычисляемого поля в самой форме пропадает. Надо его в запросе считать.
1
0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
30.08.2012, 13:23  [ТС] 5
mobile, спасибо за помощь, но я не понимаю, что мне надо сделать. Вы пишите: "Для вычисления расчетного поля, выражение должно быть записано в свойстве Данные (ControlSource)". Это где?

За функцию Nz - спасибо, очень нужная штука!!!

Сальдо конечно я и так считала в запросе, просто оно не отображается с таблицей Расчет материала(((

Объясните подробнее, что мне надо сделать. Спасибо
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.08.2012, 13:28 6
Marishkin, вот ваша же БД, но с моими рекомендациями :-)

Смотрите свойства поля Сальдо конечное формы. В свойстве Данные записано расчетное выражение
Вложения
Тип файла: rar db1.rar (17.4 Кб, 101 просмотров)
1
0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
30.08.2012, 13:48  [ТС] 7
mobile, спасибо еще раз. Теперь поняла, что сальдо конечно по итогам всех вычислений будет отображаться в форме!!!

Тогда другой вопрос, а это сальдо конечное можно переносить на следующий день и тем самым будет формироваться сальдо начальное? или произойдет наложение информации?

Добавлено через 4 минуты
т.е. я так понимаю, что мне необходимо создать запрос под названием Сальдо начальное, затем в Конструкторе в Поле выбрать Сальдо конечное предшествующего дня?
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.08.2012, 13:55 8
Цитата Сообщение от Marishkin Посмотреть сообщение
mobile, спасибо еще раз. Теперь поняла, что сальдо конечно по итогам всех вычислений будет отображаться в форме!!!

Тогда другой вопрос, а это сальдо конечное можно переносить на следующий день и тем самым будет формироваться сальдо начальное? или произойдет наложение информации?
В большинстве десктопных БД вычисляемые поля не надо хранить по простой, но весомой причине. Если какие-то, ранее внесенные данные будут отредактированы, то записанное в таблице вычисляемое поле перестанет быть актуальным, поскольку изменились данные для его расчета. И тогда надо делать не маленькие процедуры по обновлению вычисляемого поля на каждый чих юзера. Это очень накладно. В то же время расчет сальдо в запросах достаточное легкое дело. Поэтому хранить вычисляемые поля в таблицах абсолютно бесперспективно, надо пользоваться запросами.

Другое дело большие, промышленные БД. Там частичный отход от нормализации БД для увеличения скорости ответа необходим и часто делают специальное ПО для поддержки и хранения вычисляемых остатков.
1
0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
30.08.2012, 14:15  [ТС] 9
И все-таки, mobile, в моей базе данных внесение данных задним числом не предусмотрено, соответственно я не собираюсь делать процедуры по обновлению вычисляемого поля на каждый чих юзера. Поэтому прошу помочь разобраться как сделать запрос с отображением сальдо начального, которое равно сальдо конечному предшествующего дня (чтобы программа каждый день автоматически считала). Потому что сейчас в номенклатуре 3 продукта, можно отследить сальдо конечно и занести его вручную, но когда номенклатура расширится, можно запутаться и внести неверные значения.
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.08.2012, 14:40 10
Marishkin, попробуйте вот такой запрос. Такой тип запросов называется "запрос нарастающим итогом"
T-SQL
1
2
3
4
5
6
7
SELECT t.дата, t.[наименование материала], sum(t.поступило) as prihod, sum(t.израсходовано) as rashod, 
   sum(q.поступило)-sum(q.израсходовано) as nachsaldo,  
   nachsaldo+prihod-rashod as konsaldo
FROM [расчет материала] t left join [расчет материала] q 
   on t.[наименование материала]=q.[наименование материала] and t.дата>q.дата
group by t.дата, t.[наименование материала]
order by t.дата, t.[наименование материала]
Такие запросы используют как раз для расчета остатков
1
0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
31.08.2012, 10:15  [ТС] 11
mobile, спасибо, вы мне очень помогли!!!
0
0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
06.09.2012, 06:34  [ТС] 12
При создании базы данных хотели бы предусмотреть такую штуку, чтобы когда заводишь данные руками в одной таблице, это же числовое значение автоматически отображалось в другой. Я так понимаю, что для этого надо создать запрос, в запросе сделать связь и в построителе выражений поставить знак равенства между этими строками???

Т.е., например, мы создаем счет на оплату, в нем нас интересует количество продаваемых единиц, это количество надо связать с таблицей склад, в которой оно будет отображаться
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
06.09.2012, 09:38 13
Marishkin, если склад это всего лишь разность между приходом и расходом, т.е. склад точно один и в нем нет внутренних перемещений, пересортировок, переоценок (или они вас не интересуют), то таблица Склад вообще не нужна. Для расчета остатков на "складе" воспользуйтесь запросом типа "нарастающим итогом", образец которого я уже давал. Только замените в нем поля стоимостей на поля, где записано количество. Вот и все.
0
0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
06.09.2012, 12:01  [ТС] 14
mobile, спасибо за ответ. Вы меня немного не поняли, или я плохо объяснила))) Мы пытаемся сделать так: создаем счет на оплату товара, в счете указываем количество, дальше хотим, чтобы это количество автоматически списывалось в таблице расход по этому товару, а потом уже отражается в таблице Расчет, которую Вы помогли создать)))
0
0 / 0 / 0
Регистрация: 30.08.2012
Сообщений: 9
06.09.2012, 12:07  [ТС] 15
Кстати, mobile, произошла какая-то ошибка. Направляю базу данных. Проблема такая, что с 27 числа программа все считает правильно, а с 31 числа он самостоятельно увеличивает количество по приходу и расходу в три раза. С чем это связано?
Вложения
Тип файла: zip верный вариант.zip (59.8 Кб, 56 просмотров)
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
06.09.2012, 20:01 16
Marishkin, попробуйте такой вариант

SQL
1
2
3
4
5
6
7
SELECT t.[Дата], [наименование материала], SUM(t.поступило) AS prihod, SUM(t.израсходовано) AS rashod,
    (SELECT SUM(Поступило) FROM [расчет материала] WHERE [наименование материала]=t.[наименование материала] AND дата<t.дата) -
    (SELECT SUM(израсходовано) FROM [расчет материала] WHERE [наименование материала]=t.[наименование материала] AND дата<t.дата) AS nachsaldo,
    nachsaldo+prihod-rashod AS konsaldo
FROM [расчет материала] t
GROUP BY t.дата, t.[наименование материала]
ORDER BY t.дата, t.[наименование материала];
1
25 / 25 / 7
Регистрация: 21.10.2009
Сообщений: 608
12.11.2012, 22:58 17
Цитата Сообщение от Marishkin Посмотреть сообщение
Ameli, хочу попросить посмотреть мою базу данных? Я хочу, чтобы в таблице "Расчет материала" отображались все данные (Сн, приход, расход, Ск). На данный момент я добилась, что отображается приход и расход путем составления запроса. Также считается остаток на конец дня, но не отображается в этой таблице. Не пойму, как сделать, чтобы и сальдо конечно считалось автоматически, сейчас я его ввожу руками. Помогите пожалуйста. Спасибо
Обясните мне пожалйсто про ето сальдо, как его понемать челвеческим языком? У меня есь подсчет сальдо в БД , но я не поимаю откуда оно цифри ети берет
0
20 / 20 / 0
Регистрация: 22.08.2012
Сообщений: 103
13.11.2012, 16:46 18
Цитата Сообщение от geek Посмотреть сообщение
подсчет сальдо в БД , но я не поимаю откуда оно цифри ети берет
Сальдо - остаток на конец периода, рассчитывается так: остаток прошлого периода+ все приходы - все расходы - все списания.

Добавлено через 2 часа 26 минут
... кхм ... и + все возвраты
1
13.11.2012, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2012, 16:46
Помогаю со студенческими работами здесь

Создание базы данных
Разработать прикладное программное обеспечение деятельности отдела вне ведомственной охраны...

Создание базы данных
Подскажите пожалуйста нужно ли создавать связующие таблицы в самой базе? И в какой программе будет...

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

Создание базы данных библиотеки
Здравствуйте, дорогие форумчане! Понимаю, что существует довольно много тем касательно создания БД...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru