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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Арифметика в MS Access, связь данных полей в разных таблицах 
V
    Опции темы
Vrungel
Дата 29.11.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ЗдрасьтЕ  
Подскажите плиз как проделать следующее:
есть 3 таблицы (Склад, приход, расход), во всех них есть поля "Наименование товара" и "кол-во" ...
нужно чтобы при изменении данных в таблицах "приход" или "расход" происходило соответствующее арифметическое действие в таблице "склад".
т.е. если в табл "приход", в поле "кол-во" написать 100, то в табл "склад" в поле "кол-во" должно прибавиться 100 ед товара, а если в "расходе" -50 то из "склада" вычесть 50 ед товара

Если можно, то разжуйте всё по пунктам   

Заранее огромнейшее спасибо!!!

Это сообщение отредактировал(а) Vrungel - 30.11.2009, 22:21
PM MAIL   Вверх
vovk
Дата 29.11.2009, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Эти телодвижения конечно можно осуществить с помощью макросов, или VB, но не правильнее ли будет продумать структуру бд и к примеру (только для примера того что описано в вопросе)  вместо 3х ваших таблиц сделать две: ТОВАР и ДВИЖЕНИЕ_ТОВАРА.  В таблице товар описывать только сам ТОВАР (ну там название, описание, производитель, код, единица измерения, и тп.), а в таблице ДВИЖЕНИЕ_ТОВАРА добавить внешний ключ на таблицу ТОВАР  и описывать уже сами действия (товар(ссылка на товар в таблице товаров), количество(как + так и - то есть прибыло убыло будут отличатся только знаком-), контрагент (от кого прибыло или куда убыло), дата (дата действия), ну и ещё поля если нужно  )
Тогда легко можно будет  с помощью запросов узнать количество каждого товара на любой момент времени.

Ну вот както так

Это сообщение отредактировал(а) vovk - 29.11.2009, 22:13
PM MAIL   Вверх
Vrungel
Дата 29.11.2009, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Беда в том, что я сделал прогу на Делфи и у меня идёт простое отображение данных БД в АДОТейбл,, лишние запросы не к чему ...

PM MAIL   Вверх
vovk
Дата 30.11.2009, 03:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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

Ну а если всётаки решите делать по своему, то в общем случае тогда нужно реагировать на события ADOTable как вариант  перед рактированием (событие AfterEdit) записывать в переменную значение поля "количество", а после сохранения изменений (событие BeforePost) проверять изменилось ли количество, то есть сравнить значение переменной со значением в таблице. Если изменилось, то искать в датасете который содержит  таблицу ТОВАР соответствующую запись и редактировать её.
По моему поддерживать целостность данных на такой БД то ещё удовольствие.


Кстати тему стоило создать в  "Delphi: Базы данных и репортинг"

Это сообщение отредактировал(а) vovk - 30.11.2009, 07:20
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

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

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

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



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


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

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


 




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


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

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