Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хочу установить отметку о погашении счета
 
 автор: Аленка   (17.10.2008 в 14:17)   личное сообщение
 
 

Есть таблица счетов.
Есть таблица платежей.
В итоге каждый счет может оплачиваться несколькими платежами.

Я хочу сделать так, чтобы при проверке всех платежей по счетам они получали отметку Погашен (если сумма счета и сумма всех платежей по счету равны), частично погашен (если не равны и больше 0). Ну а если по счету платежей не было, то его и проверять не нужно. Он так и остается непогашенным.

Наверное, это лучше сделать с помощью запроса на обновление?
Вот только подскажите, а как в запросе указать Условие о том, что проверка проводится по всем платежам с одинаковым номером счета? У меня вот здесь затык.
Спасибо

  Ответить  
 
 автор: Pasat   (17.10.2008 в 14:58)   личное сообщение
 
 

В условии отбора для поля [номер счета] указать проверяемый

  Ответить  
 
 автор: Pasat   (17.10.2008 в 14:58)   личное сообщение
 
 

  Ответить  
 
 автор: shaucha   (17.10.2008 в 14:59)   личное сообщение
 
 

Я бы делал группировку платежей по номеру счета.
И сравнивал бы суммы из группировки с суммой счета.

  Ответить  
 
 автор: Аленка   (17.10.2008 в 15:02)   личное сообщение
 
 

Я не могу указать проверяемый номер счета. Ведь проверяются ВСЕ непогашенные.
А что касается группировки, то это первое, что я сделала. НО наткнулась на то, что запрос с группировкой становится НЕОБНОВЛЯЕМЫМ и соответственно проверить таким образом суммы я могу, но изменить ничего не могу.
Вот в чем проблем.

  Ответить  
 
 автор: shaucha   (17.10.2008 в 15:07)   личное сообщение
 
 

А Вы не делали связи таблицы Проплат с таблицей Счетов по Номеру Счета?

  Ответить  
 
 автор: Pasat   (17.10.2008 в 15:11)   личное сообщение
 
 

Как вариант
создать временную таблицу в нее добавлять записи из запроса с группировкой (предварительно удалив старые данные). И затем обнавлять оплаченную сумму по счету, данными из временной таблицы

  Ответить  
 
 автор: shaucha   (17.10.2008 в 15:16)   личное сообщение
 
 

СОгласен.
Одним запросом, скорее всего не получится реализовать.

  Ответить  
 
 автор: Гамлет   (17.10.2008 в 15:21)   личное сообщение
 
 

Понятно что не одним ...

  Ответить  
 
 автор: Аленка   (17.10.2008 в 15:20)   личное сообщение
 
 

У меня есть связь по номеру счета, естественно, между обеими таблицами.
И с временной таблицей я тоже пробовала. Тоже сплошные проблемы.

Если с запросом с группировкой проблема в том, что данный запрос не обновляем.
То при создании таблицы на основе запрос с группировкой я получаю необходимость создавать новый запрос, в котором должна связать временную таблицу и таблицу счетов. НО тогда появляется проблема: второй раз создать временную таблицу нельзя, так как она уже имеет связь, а значит не удалится при запросе на создание такой же таблицы.

Ну неужели никак нельзя? Я уже все варианты перепробовала, которые знаю.

  Ответить  
 
 автор: shaucha   (17.10.2008 в 15:21)   личное сообщение
 
 

Я сейчас маленький пример сделаю.



Пример готов.
http://slil.ru/26245988

  Ответить  
 
 автор: Аленка   (17.10.2008 в 15:25)   личное сообщение
 
 

Думала, что все просто будет. А тут с утра бьюсь, никак не получается.
Может кто поможет?
Вот таблицы (упрощенно):
СЧЕТА:
Счет......Сумма.......Отметка
111..........100..............Не погашен
222...........200.............Не погашен

ПЛАТЕЖИ:
По_счету........Приход.......Уход
111.....................50.......................
111.....................30......................
111.....................20.......................
222.....................100.....................

В итоге получится, что счет 111 станет ПОгашенным, а счет 222 станет Частично Погашенным.

  Ответить  
 
 автор: shaucha   (17.10.2008 в 15:38)   личное сообщение
 
 

Пример готов.
http://slil.ru/26245988

  Ответить  
 
 автор: Гамлет   (17.10.2008 в 15:27)   личное сообщение
 
 

Нужно создать
1. Запрос с группировкой - он же запрос на добавление во временную таблицу
2. Запрос на удаление из временной таблицы
3. Запрос на обнавление таблицы счетов - где таблица счетов связана со временной таблицей по полю номер счета

Последовательность запуска запросов в макросе или в ВБА
Запрос на удаление - запрос на добавление - Запрос на обнавление

  Ответить  
 
 автор: Аленка   (17.10.2008 в 15:28)   личное сообщение
 
 

Блин, только что делала для других целей запрос на удаление и о нем не подумала. Точно. Пойду попробую. А то снова какой-нибудь затык будет. Я тода сразу к вам.

  Ответить  
 
 автор: Аленка   (17.10.2008 в 17:57)   личное сообщение
 
 

Все, разобралась.
Только вот подскажите, как сделать так, чтобы отключить первое предупреждение о том, что запрос на обновление приведет к изменению таблицы, но при этом оставить сообщение о количестве обновляемых записей?
Первое предупреждение ну совсем лишнее. А второе очень даже нужное для меня.
Set warnings либо включает либо отключает все предупреждения.
Спасибо!!!!!!!!!!!!!!!!!

  Ответить  
 
 автор: shaucha   (17.10.2008 в 18:03)   личное сообщение
 
 

Сервис/Парамерты/Правка и поиск/Подтверждение - тут снять ненужные "флажки".
(Но тут просто можно отменить предупреждение о удалении документов, изменении записей и запуске запросов об изменении).
(А пример-то мой хоть помог?)

  Ответить  
 
 автор: FORMAT   (17.10.2008 в 18:06)   личное сообщение
 
 

Сегодня уже вроде как говорилось про енто - RecordsAffected. Хотя может у меня уже глюки в конце недели.

  Ответить  
 
 автор: Аленка   (17.10.2008 в 18:08)   личное сообщение
 
 

shaucha, я никак не могу Ваш примерчик скачать.
Я хоть и разобралась, но все я бы посмотрела. Вы трудились для меня, поэтому хотелось бы, чтобы труды даром не пропали. Да и к тому же, может там более удобная схема.
Но не хочет скачивать эти 308Кб. У меня фильмы DVD9 качается за 10 минут. То еть канал у меня очень широкий, точно не помню, но вроде 25Мбит в сек.
А со Slila совсем не качает. 100Кб скачивает и останавливается. Потом закачка закрывается

  Ответить  
 
 автор: shaucha   (17.10.2008 в 18:10)   личное сообщение
 
 

Вот гадость какая этот Слил. )
Ну и ладно. Там ничего особенного нет в примере.
Просто все эти запросы, о которых шла речь. И времени я потратил совсем немного ).

  Ответить  
 
 автор: Гамлет   (17.10.2008 в 18:12)   личное сообщение
 
 

У меня скачивает но долго

если размер файла не более 50 Кбб то можно размещать прямо тут

  Ответить  
 
 автор: shaucha   (17.10.2008 в 18:19)   личное сообщение
 
 

Ну не получился у меня пример такого размера )))

  Ответить  
 
 автор: Аленка   (17.10.2008 в 18:21)   личное сообщение
 
 

Ребят, скачала. Наконец-то. с 10 раза.
Посмотрела, в общем-то то же самое, что и я сделала, только я с самого утра делала.
ЗАТО РАЗОБРАЛАСЬ.
Очень благодарю за помощью и советы!!!!!!!!!
И про Set warnings ответите? Как убрать первое уведомление о том, что таблица в результате обновления будет изменена, но оставить второе, где сообщается о количестве обвновляемых записей.

  Ответить  
 
 автор: shaucha   (17.10.2008 в 18:27)   личное сообщение
 
 

Вот osmor сегодня в другой теме писал:

автор: osmor (17.10.2008 в 10:45)

выполняйте запрос методом execute (ado или DAO на выбор)
в DAO есть свойство RecordsAffected
в ADO параметр RecordsAffected
возвращает число обработынных запросом записей
так. же там можно получить ошибку выполнения (такую как нарушение уникальности) и ее обработать

Но это как-то слишком для Вашего случая, мне кажется.
Я сейчас еще подумаю, но интуитивно чувствую, что можно из запроса вытянуть это значение (количество изменяемых записей) и положить в MsgBox свой.

  Ответить  
 
 автор: FORMAT   (17.10.2008 в 18:27)   личное сообщение
 
 

А ты глянь чуть выше

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList