|
|
|
| Есть таблица счетов.
Есть таблица платежей.
В итоге каждый счет может оплачиваться несколькими платежами.
Я хочу сделать так, чтобы при проверке всех платежей по счетам они получали отметку Погашен (если сумма счета и сумма всех платежей по счету равны), частично погашен (если не равны и больше 0). Ну а если по счету платежей не было, то его и проверять не нужно. Он так и остается непогашенным.
Наверное, это лучше сделать с помощью запроса на обновление?
Вот только подскажите, а как в запросе указать Условие о том, что проверка проводится по всем платежам с одинаковым номером счета? У меня вот здесь затык.
Спасибо | |
|
| |
|
|
|
| В условии отбора для поля [номер счета] указать проверяемый | |
|
| |
|
|
|
|
| Я бы делал группировку платежей по номеру счета.
И сравнивал бы суммы из группировки с суммой счета. | |
|
| |
|
|
|
| Я не могу указать проверяемый номер счета. Ведь проверяются ВСЕ непогашенные.
А что касается группировки, то это первое, что я сделала. НО наткнулась на то, что запрос с группировкой становится НЕОБНОВЛЯЕМЫМ и соответственно проверить таким образом суммы я могу, но изменить ничего не могу.
Вот в чем проблем. | |
|
| |
|
|
|
| А Вы не делали связи таблицы Проплат с таблицей Счетов по Номеру Счета? | |
|
| |
|
|
|
| Как вариант
создать временную таблицу в нее добавлять записи из запроса с группировкой (предварительно удалив старые данные). И затем обнавлять оплаченную сумму по счету, данными из временной таблицы | |
|
| |
|
|
|
| СОгласен.
Одним запросом, скорее всего не получится реализовать. | |
|
| |
|
|
|
|
|
| Я сейчас маленький пример сделаю.
Пример готов.
http://slil.ru/26245988 | |
|
| |
|
|
|
| Думала, что все просто будет. А тут с утра бьюсь, никак не получается.
Может кто поможет?
Вот таблицы (упрощенно):
СЧЕТА:
Счет......Сумма.......Отметка
111..........100..............Не погашен
222...........200.............Не погашен
ПЛАТЕЖИ:
По_счету........Приход.......Уход
111.....................50.......................
111.....................30......................
111.....................20.......................
222.....................100.....................
В итоге получится, что счет 111 станет ПОгашенным, а счет 222 станет Частично Погашенным. | |
|
| |
|
|
|
| Пример готов.
http://slil.ru/26245988 | |
|
| |
|
|
|
| Нужно создать
1. Запрос с группировкой - он же запрос на добавление во временную таблицу
2. Запрос на удаление из временной таблицы
3. Запрос на обнавление таблицы счетов - где таблица счетов связана со временной таблицей по полю номер счета
Последовательность запуска запросов в макросе или в ВБА
Запрос на удаление - запрос на добавление - Запрос на обнавление | |
|
| |
|
|
|
| Блин, только что делала для других целей запрос на удаление и о нем не подумала. Точно. Пойду попробую. А то снова какой-нибудь затык будет. Я тода сразу к вам. | |
|
| |
|
|
|
| Все, разобралась.
Только вот подскажите, как сделать так, чтобы отключить первое предупреждение о том, что запрос на обновление приведет к изменению таблицы, но при этом оставить сообщение о количестве обновляемых записей?
Первое предупреждение ну совсем лишнее. А второе очень даже нужное для меня.
Set warnings либо включает либо отключает все предупреждения.
Спасибо!!!!!!!!!!!!!!!!! | |
|
| |
|
|
|
| Сервис/Парамерты/Правка и поиск/Подтверждение - тут снять ненужные "флажки".
(Но тут просто можно отменить предупреждение о удалении документов, изменении записей и запуске запросов об изменении).
(А пример-то мой хоть помог?) | |
|
| |
|
|
|
| Сегодня уже вроде как говорилось про енто - RecordsAffected. Хотя может у меня уже глюки в конце недели. | |
|
| |
|
|
|
| shaucha, я никак не могу Ваш примерчик скачать.
Я хоть и разобралась, но все я бы посмотрела. Вы трудились для меня, поэтому хотелось бы, чтобы труды даром не пропали. Да и к тому же, может там более удобная схема.
Но не хочет скачивать эти 308Кб. У меня фильмы DVD9 качается за 10 минут. То еть канал у меня очень широкий, точно не помню, но вроде 25Мбит в сек.
А со Slila совсем не качает. 100Кб скачивает и останавливается. Потом закачка закрывается | |
|
| |
|
|
|
| Вот гадость какая этот Слил. )
Ну и ладно. Там ничего особенного нет в примере.
Просто все эти запросы, о которых шла речь. И времени я потратил совсем немного ). | |
|
| |
|
|
|
| У меня скачивает но долго
если размер файла не более 50 Кбб то можно размещать прямо тут | |
|
| |
|
|
|
| Ну не получился у меня пример такого размера ))) | |
|
| |
|
|
|
| Ребят, скачала. Наконец-то. с 10 раза.
Посмотрела, в общем-то то же самое, что и я сделала, только я с самого утра делала.
ЗАТО РАЗОБРАЛАСЬ.
Очень благодарю за помощью и советы!!!!!!!!!
И про Set warnings ответите? Как убрать первое уведомление о том, что таблица в результате обновления будет изменена, но оставить второе, где сообщается о количестве обвновляемых записей. | |
|
| |
|
|
|
| Вот osmor сегодня в другой теме писал:
автор: osmor (17.10.2008 в 10:45)
выполняйте запрос методом execute (ado или DAO на выбор)
в DAO есть свойство RecordsAffected
в ADO параметр RecordsAffected
возвращает число обработынных запросом записей
так. же там можно получить ошибку выполнения (такую как нарушение уникальности) и ее обработать
Но это как-то слишком для Вашего случая, мне кажется.
Я сейчас еще подумаю, но интуитивно чувствую, что можно из запроса вытянуть это значение (количество изменяемых записей) и положить в MsgBox свой. | |
|
| |
|
|
|
| А ты глянь чуть выше | |
|
| |