Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/37: Рейтинг темы: голосов - 37, средняя оценка - 4.68
 Аватар для VinniPuh
9148 / 6183 / 594
Регистрация: 27.03.2013
Сообщений: 20,061

ЖКХ-Счетчики

25.09.2015, 08:46. Показов 8225. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня!
Делаю БД типа ЖКХ, где для каждой квартиры хочу вести учет показаний счетчиков:
Эл.Энергия
Газ
ГВС
Отопление
и т. п.
Все вроде бы сделал правильно и считается обычно верно, но есть один нюансик, который не могу разрешить в свою пользу, а именно,
Открываем форму - Квартиры
для примера берем квартиру по адресу
пр-зд Муромский, д. 1, кв. 1
В форме во вкладке - Данные вставлена подформа - Счетчики квартиры
где я указываю какие именно счетчики установлены, Заводской №, Стартовые показания при пуске в эксплуатацию, дада пуска.
ввел -
Эл.энергия
ГВС
Газ
Перехожу на вкладку - Показания
Там подформа - где на каждый месяц вводим показания счетчика учета, выбирая тип счетчика.
Я в начале ввел - Эл. Энергию, все считалось правильно кажись.
Стал вводить Газ и ГВС, то в запросе вместо их начального пускового значения берется значение Эл. Энергии.
Я уж и так и сяк бился, то не правильно начинает считать, то синтаксис не такой.
Уже сил ни каких не осталось. изревеслся весь , синяков и шишек понаставил на всю голову. :black_eye.:
Помогите люди добрые.
Миниатюры
ЖКХ-Счетчики   ЖКХ-Счетчики   ЖКХ-Счетчики  

Вложения
Тип файла: rar ЖКХ-22.rar (174.3 Кб, 176 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.09.2015, 08:46
Ответы с готовыми решениями:

БД ЖКХ
я дико извиняюсь если тема подобная существует.... я не программист, я обычный юрист и прошу вашей помощи, в связи с увеличением...

Создание БД для управляшки ЖКХ
появилась необходимость в создании БД жильцов в нашим домах, ну вот собственно я начал лазить искать, нашел форму клиентов, но черт возьми,...

База данных по оплате ЖКХ
Переделал базу данных. Но не могу понять как сделать так что бы можно было на екран или в виде отчета вывести квитанцию к оплате для...

30
 Аватар для VinniPuh
9148 / 6183 / 594
Регистрация: 27.03.2013
Сообщений: 20,061
04.10.2015, 04:12  [ТС]
Студворк — интернет-сервис помощи студентам
Всем доброй и спокойной ночи!
А мне вот не спится т. к. снились сны про то как я начал вводить неправильные даты в БД.
Кошмары короче.
Помогите люди добрые, подскажите как предохраниться от неправильного (типа повторного ввода одного и того же месяца года) в подчиненной форме - фпУчетКвартиры находящейся в основной форме - Счетчики квартир.
Пытался, но у меня самого чёй та не получается из за малого опыта и как всегда трудностями с датами.
Миниатюры
ЖКХ-Счетчики  
Вложения
Тип файла: rar ЖКХ-30.rar (188.5 Кб, 42 просмотров)
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.10.2015, 10:00
В принципе достаточно установить составной уникальный индекс на поля КодДатыУ и КодСчетчикаУ в т.Учет и повторов не будет. Смотри рисунок.
Но при этом возникнет ошибка если повтор. Чтобы исключить этот момент, на событии Текущая запись главной формы записан код, запрещающий ввод, если количество записей равно 12. Не очень внятно, но не знаю как лучше. Аналогичная проверка на событии Перед обновлением подформы.
Миниатюры
ЖКХ-Счетчики  
Вложения
Тип файла: rar ЖКХ-30_1.rar (205.2 Кб, 82 просмотров)
1
 Аватар для VinniPuh
9148 / 6183 / 594
Регистрация: 27.03.2013
Сообщений: 20,061
04.10.2015, 10:44  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
...В принципе достаточно установить составной уникальный индекс на поля...
Спасибо, но я и так пытался, но уж больно страшные сообщения об ошибке вылезают, так и до инфаркта недалеко.
Проседура про не больше 12 тоже глючит, при любой ошибке, даже если и меньше 12, меня засасывает в данный модуль формы и начинает ругаться вот так.
Миниатюры
ЖКХ-Счетчики  
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.10.2015, 10:49
Цитата Сообщение от PuhKMV Посмотреть сообщение
Проседура про не больше 12 тоже глючит
Извиняюсь Забыл изменить. Надо эту процедуру изменить на
Visual Basic
1
2
3
4
5
6
7
Private Sub Form_AfterUpdate()
    If Me.RecordsetClone.RecordCount = 12 Then
        Me.AllowAdditions = False
    Else
        Me.AllowAdditions = True
    End If
End Sub
И не на До обновления, а ПОСЛЕ - Form_AfterUpdate
1
 Аватар для VinniPuh
9148 / 6183 / 594
Регистрация: 27.03.2013
Сообщений: 20,061
04.10.2015, 11:28  [ТС]
Так да, нормально, я об этом как то даже и не подумал, когда снились ошибки.
А вот как сделать просто, что бы ВАЩЕ ни чего не происходило, когда у данного счетчика по нечаенности выбираешь один и тот же месяц.
Так можно?
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.10.2015, 11:50
Лучший ответ Сообщение было отмечено VinniPuh как решение

Решение

Цитата Сообщение от PuhKMV Посмотреть сообщение
А вот как сделать просто, что бы ВАЩЕ ни чего не происходило, когда у данного счетчика по нечаенности выбираешь один и тот же месяц.
А вот это как раз на BeforeUpdate подформы
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Form_BeforeUpdate(Cancel As Integer)
    With Me.RecordsetClone
        .Findfirst "КодДатыУ=" & Me.КодДатыУ & " and Код_Учета<>" & Me.Код_Учета
        If Not .nomatch Then
            Cancel = True
            MsgBox "Платеж за данную дату уже произведен"
        End If
    End With
End Sub
1
 Аватар для VinniPuh
9148 / 6183 / 594
Регистрация: 27.03.2013
Сообщений: 20,061
04.10.2015, 11:54  [ТС]
Ура!!!
Здоровско.
Спасибо!
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.10.2015, 11:59
Пух, можно этот же код поставить и на До обновления поля КодДатыУ. Тогда вообще не даст выйти из поля, пока не задашь правильную дату.
1
 Аватар для VinniPuh
9148 / 6183 / 594
Регистрация: 27.03.2013
Сообщений: 20,061
04.10.2015, 19:23  [ТС]
mobile, Тостер Пух во время тестирования новых предохраняющих процедур обнаружил такую аварию.
Типа для одного счетчика ввел все 12 месяцев, он исправно запретил дальнейший ввод 13-го месяца,
Я перешел на другой счетчик, а там авария, типа и он заблокировался, типа Запрещено добавление, хотя там только 2 месяца и там ввод невозможен, а очень надо.
Хотса как то это несоответствие искоренить.
Предполагаю. что что-то на текущей записи повесить, но нет познаний, помогите ради Бога победить сей курьёз.

Добавлено через 30 минут
А. а. а, уже не нужно, сам спросил и сам же подсознательно чуствуется ответил.
Повесил процедуру про 12 месяцев на - Текущую запись и всё стало в ажуре.

Добавлено через 3 часа 37 минут
У меня вот во время тестов вылез еще один нюансик.
В Форме - Дома, находится подчиненная форма - фпКвартиры
Там по началу замысливалась проверка на количество и недопущение повторного ввода квартир, а т. к. с лету не пошло, то отложил на потом, которое уже настало сегодня.
Однако уже несколько часов бъюсь, но толку ни какого, то неправильно работает. то ошибки лезут, где то я не догоняю как правильно процедуры написать, голова уже гругом идет с непривычки.
Посмотрите пожалуйста свежим взглядом, где я торможу.
1
 Аватар для VinniPuh
9148 / 6183 / 594
Регистрация: 27.03.2013
Сообщений: 20,061
04.10.2015, 19:57  [ТС]
Если сказать точнее, то почему то вводятся номера квартир только до 8, а дальше пишет, что такой квартиры не существует, не смотря на то, что указано квартир 45, а не 8.
Вариант последнего кода вот такой:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*", "Квартиры", "КодДомаКв=" & Nz(Me.КодДомаКв, 0) & " AND Квартира=" & Nz(Me.Квартира, 0) & "") >= 1 Then
   Cancel = True
   Me.Undo
   MsgBox ("Квартира уже указана!")
End If
 
If Me.Квартира > Nz(DLookup("КвартирД", "Дома", "КодДомаКв=" & Nz(Forms![Дома]![Код_Дома], 0)), 0) Then
   Cancel = True
   Me.Undo
   MsgBox ("Данной квартиры не существует!")
End If
 
End Sub
 
Private Sub Form_Current()
If Me.NewRecord Then
   Dim a As Integer
   a = Nz(DLookup("КвартирД", "Дома", "Код_Дома=" & Nz(Forms![Дома]![Код_Дома], 0)), 0)
   If a > 0 And DCount("*", "Квартиры", "КодДомаКв=" & Nz(Me.КодДомаКв, 0) & "") >= a Then
      'Me.AllowAdditions = False
      MsgBox ("Все квартиры указаны!")
      DoCmd.GoToRecord , , acPrevious
   End If
End If
 
End Sub
Миниатюры
ЖКХ-Счетчики  
0
 Аватар для VinniPuh
9148 / 6183 / 594
Регистрация: 27.03.2013
Сообщений: 20,061
04.10.2015, 20:02  [ТС]
Да блин, опять сам ошибку нашел.
Умнею прям не по дням а по часам.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.10.2015, 20:02

Не оплаченые остатки по начислением ЖКХ
Здравствуйте! Помогите корректно получить не оплаченый остаток за период(ы) по лицувому счету (счетам)... Есть таблица начислений за...

Счетчики и первичные ключи при многопользовательской работе
Проблема: при работе нескольких юзеров с базой данных написанной на Access2000 она (база) периодически валится по причине генерации им ...

Отчет "справка ЖКХ"
Есть БД, выходным документом которой должна являться справка ЖКХ, в которой есть поля: Начислено, Оплачено, Задолженности: Всего, До 2...

Счетчики производительности (Ошибка, счетчики не указаны)
Добрый день Возникла проблема Пытаясь запустить счетчик производительности (typeperf) через командный файл, мне выдает ошибку...

БД ЖКХ
Привет, давно уже писал по поводу своей базы. Пришлось снова к ней вернуться и возник момент, который хочется осуществить но не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru