Access+VBA

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Просьба немного помочь. Есть таблица Словарь, в ней указаны товары и их свойства. Есть форма основанная на этой таблице для поиска товаров и дальнейшего разбрасывания их по таблицам "Продажи", "Продажи Опт", "Закупка". Соответственно есть три кнопки для отправки данных в каждую таблицу. Т.е. кнопка выполняет функцию копирования нужных полей выбранного товара в нужную таблицу. Выглядит это так:
Листинг программы
  1. Private Sub Кнопка51_Click()
  2. Dim rs As dao.Recordset
  3. Set rs = CurrentDb.OpenRecordset("Продажи", dbOpenDynaset)
  4. rs.AddNew
  5. rs!Тип = Me!Тип()
  6. rs!Производитель = Me!Производитель()
  7. rs!Название = Me!Название()
  8. rs!Цена = Me!Цена1
  9. rs!Описание = Me!Описание()
  10. rs!Объем = Me!Объем1
  11. rs!Никотин = Me!Поле68
  12. rs!Количество = Me!Количество1
  13. rs.Update
  14. rs.Close
  15. Set rs = Nothing
  16. MsgBox ("Успешно")
  17. End Sub
На данный момент мне нужно вычислить остаток товара. Логика проста, при нажатии кнопки Закупка и отправки товара в данную таблицу, к полю "Остаток" для данного товара должно быть прибавлено количество (количество указывается в поле формы). Соответственно при "продаже" или "продаже оптом" Количество должно отниматься. Я попробовал реализовать это следующим образом:
Листинг программы
  1. Private Sub Кнопка51_Click()
  2. Dim rs As dao.Recordset
  3. Set rs = CurrentDb.OpenRecordset("Продажи", dbOpenDynaset)
  4. rs.AddNew
  5. rs!Тип = Me!Тип()
  6. rs!Производитель = Me!Производитель()
  7. rs!Название = Me!Название()
  8. rs!Цена = Me!Цена1
  9. rs!Описание = Me!Описание()
  10. rs!Объем = Me!Объем1
  11. rs!Никотин = Me!Поле68
  12. rs!Количество = Me!Количество1
  13. rs.Update
  14. rs.Close
  15. Set rs = Nothing
  16. Set rs = CurrentDb.OpenRecordset("Словарь", dbOpenDynaset)
  17. rs.Edit
  18. rs!Остаток = Me!Остаток - Me!Количество1
  19. rs.Update
  20. rs.Close
  21. Set rs = Nothing
  22. MsgBox ("Успешно")
  23. End Sub
И тут есть одна проблема, эти арифметические операции производятся не с полем принадлежащим к выбранному товару, а с полем самого первого товара. Соответственно мне нужно, чтобы эти операции проводились с полем "остаток" принадлежащем к ВЫБРАННОМУ товару. Я приблизительно понимаю как такое сделать (Использовать recordset своей формы/Seek=Me!Код/или что-то другое), но знания VBA у меня стремятся к 0, и я просто не могу это реализовать.Заранее большое спасибо.

Решение задачи: «Access+VBA»

textual
Листинг программы
  1. rs.findfirst "[Поле кода товара]=" & Me.[Поле кода товара]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут