Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

База данных Access (VBA, SQL)

Дмитрий Крестовский Ученик (107), на голосовании 5 лет назад
Здравствуйте!
Нужна помощь в создании возможности изменения значения в таблице "Товар" с выборкой по коду товара.

Есть таблица "Товар". В ней поля "Код товара" (ключ), "Имя", "Количество", "Цена".
Есть форма "Недосдача". На форме 2 поля ввода значений: Код товара (EditKod) и Количество (EditCount) и кнопка. Слева имеется список товаров с полями "Код товара" и "Количество".
База данных требуется для инвентаризации, то есть по задумке после перерасчёта товаров в магазине, нужно в верхнее в поле вписать код товара, в нижнее количество после пересчёта и по нажатию кнопки новое значение количества должно сохраниться в таблице "Товар".
Буду благодарен за любую помощь, ибо с VBA или SQL очень плох в обращении.
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (445828) 5 лет назад
Ты эту базу сам придумал или тебя кто-то подло подставил?

Я тебе вкратце расскажу, как делается учет товара.
Есть таблица товаров (как у тебя) и есть таблица движения товаров.
В таблицу движений записывается:
- Закупка товара
- Продажа товара
- Списывание в утиль
- Инвентаризационная поправка
- Возврат товара
Есть еще всякие мутные операции вроде переноса товара в другой магазин, ну да оставим их пока для ясности.
Так вот: баланс товара - это тупо сумма всех движений товара. А таблица "недостача" - это бред собачий.
Если ты это сам придумал - лучше переделай, пока не поздно.
Дмитрий КрестовскийУченик (107) 5 лет назад
База не моя. "Недосдача" - не таблица, а форма, в которой проводится инвентаризационная поправка для вычета процента недосдачи.
Но, мой вопрос был совершенно о другом.
Jurijus Zaksas Искусственный Интеллект (445828) Вопрос тут в подходе. Ты можешь вообще не хранить текущий баланс в таблице товаров. А можешь и хранить - для скорости. В любом случае, инвентаризация - это всего лишь еще одна запись в таблице движений, и все, что тебе нужно - это добавить такую запись. Потом можешь перерасчитать балансы, если ты их хранишь. Перерасчет делается одной командой: UPDATE GOODS G SET G.BALANCE = (SELECT SUM(M.AMOUNT) FROM MOVEMENTS M WHERE M.GOOD_ID=G.ID) Никакие VBA скрипты тут не нужны.
Похожие вопросы