вторник, 10 сентября 2013 г.

Еще одна задача БД+VBA. Удаление данных из таблицы

Итак, есть некая БД, схема данных которой приведена ниже. Изначально БД состоит из трех таблиц. Необходимо заполнить четвертую таблицу  данными, если введенная пользователем дата, совпадает с датой из таблиц "Требование" и "Лимитно-заборные карты"

Четвертая таблица "Сведения о приходе-расходе за сутки" создавалась ручками, заполнять нужно программно. Нам понадобится форма, куда, собственно, пользователь будет вводить дату, заведем для этого переменную d. Например, такая
Все волшебство у нас будет привязано к кнопке. Следовательно, исходный код будет привязан к клику по кнопке.
Эту задачу я реализовала в три этапа. 
1. Поиск по таблице "Лимитно-заборные карты". Если Дата_поступления совпадает с введенной датой, мне необходимо скопировать Код_материала в таблицу "Сведения..." и указать количество этого поступившего материала в столбце Количество_поступило. Для каждой таблицы, естественно, нужен свой рекордсет.
Поскольку в таблице "Сведения..." у нас еще нет ничего, при каждой необходимости внести в нее данные, мы добавляем новую строку.
2. Первоначальная таблица сформирована, в ней заполнены только два столбца. Следующая задача заключается в до-копировании данных, но уже из таблицы "Требования" по тому же условию. 
Нам необходимо ввести также дополнительное условие: если в таблицы "Сведения..." уже существует запись с Код_материала, мы дописываем Количество_выдано, а если такого кода нет - добавляем новую строку в таблицу "Сведения" и копируем туда Код_материала и Количество_выдано.
3. И последнее. Нужно снова дозаполнить таблицу "Сведения..." данными из таблицы "Движение". Поиск осуществляется в двойном цикле. Собственно, 
Результат будет следующий:

Удаление информации из таблице можно осуществить с помощью добавленного в код запроса SQL (привязываем ко второй кнопке).






Комментариев нет:

Отправить комментарий