LEADERSOFT.ru
Разработка на заказ программ и сайтов
Разработка
Заказ программы
Прайс-лист
Техническое задание
Проектная документация
Наши клиенты
Реклама и продвижение
Магазин
Перейти в магазин
Новинки магазина
Бизнес программы
Финансовый учет
Документооборот
Исходные коды
Интернет решения
Обучение
Перейти в раздел
Форумы по разработке
Примеры на Access
Рассылка статей
Магазин IT литературы
Блог
Все статьи
Microsoft Access (VBA)
Microsoft Access (Проекты)
Microsoft ASP.NET
Сервисы Google
Технические задания
Новости IT технологий
Сервисы
Форумы разработчика
Контакты
О компании
Регистрация на сайте
Подписка на новости по Email
Сообщество Google+
Подписка subscribe.ru
Новости в формате Атом
Загрузить
Загрузить каталог программ
Форумы по информационным технологиям
Начало
Forums
Регистрация
|
Вход
Forums
Обновлено ::
06 февраля 2005
Форумы
Поиск
Список форумов
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Горизонта...
Тема: Горизонтальное вычитание множества полей по усл!!!
15.06.2007 21:09:05
All
4316 сообщения
Тема: Горизонтальное вычитание множества полей по усл!!!
Здравствуйте!!!
Постановка задачи следующая. Есть таблица "rezult", где есть следующие поля:
id - лицевой счет
dolg - сумма долга
nac50 - начисление за 50-й период (например за декабрь 2004 г.)
nac49 - начисление за 49-й период
.... и т. д.
nac1 - начисление за 1-й период.
Соответственно по истечению января 2005 г. появится поле nac51.
Надо из долга вычитать начисления из каждого поля до тех пор пока долг не станет отрицательным числом по каждому лицевому счету, т.е.:
itogo=dolg-nac50-nac49-...>0,
например: dolg=500; nac50=300; nac49=100; nac48=150 и т.д., тогда 500-300-100=100, а если вычитать nac48, то уже будет отрицательное число и перебор полей по этой строке надо прекратить и в результате вывести число 100.
В итоге надо вывести поля (id, itogo, kolvo)
kolvo - это поле, где выводится количество полей nacXXX, которое участвовало в вычитании для получения результата.
Как это сделать? Очень нужно?
С уважением, Игорь!!!
P.S. Общий раздел по таблицам
Автор:
Игорь
от 0:00:00
Источник ...
15.06.2007 21:09:05
All
4316 сообщения
RE: Горизонтальное вычитание множества полей по усл!!!
1. Надо использовать функции DSum и DCount в запросе на выборку. Примерно так,
itogo = dolg - DSum("[nac]" & [Период];"rezult"). Далее из этого запроса отобрать запись с минимальным отрицательным значение itogo.
2. Или дабавить дополнительное поле, куда записывать результат начислений.
P.S. Общий раздел по таблицам
Автор:
Admin
от 0:00:00
Источник ...
15.06.2007 21:09:05
All
4316 сообщения
RE: Горизонтальное вычитание множества полей по усл!!!
Я переделал структуру БД так как понял, что она организована не совсем правильно и теперь она выглядит следующим образом. Значит две таблицы. В первой хранятся поля "id" и "dolg". Во второй таблице хранятся поля "id", "nac", "mes" (новое поле, которое обозначает в каком месяце было занесено "nac"). Создаю запрос на основе объединения 2-х таблиц по полю "id" и получаю результат в виде таблицы с полями "id","mes","dolg","nac", где "id" отсортировано по возрастанию, а поле "mes" - по убыванию. Теперь надо написать программный код, который будет обрабатывать каждый id и принадлежащие ему множества записей поля "nac" по формуле (dolg-nac)>0. Так как я еще в этом деле совсем совсем начинающий, то попрошу привести часть кода для обработки записей целиком. Я так понимаю, что начать надо с этого:
Private Sub Кнопка16_Click()
On Error GoTo Err_Find01_05
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim str As String
Dim lngRecordCount As Long
Dim strSQL As String
'Формируем строку SQL
strSQL = "SELECT * FROM rezult" 'rezult - запрос из 2-х таблиц
Set db = CurrentDb
'Открывем набор записей на основе строки SQL
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
----------- Что здесь должно быть? --------------------
rs.Close
db.Close
Exit_Find01_05:
Exit Sub
Err_Find01_05:
MsgBox Err.Description
Resume Exit_Find01_05
End Sub
С уважением, Игорь!!!
P.S. Общий раздел по таблицам
Автор:
Игорь
от 0:00:00
Источник ...
Страница 1 из 1
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Горизонта...
Одноуровневый вид
Древовидная структура
Самый старый из новых
Новейший из старых
Поиск
Список форумов
Начало
|
Forums
Copyright 2002-2016 Leadersoft.ru
::
Leadersoft
::
Соглашение о безопасности
::
Условия использования