Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238

Работа с текущим временем

22.03.2016, 19:13. Показов 4048. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите пожалуйста ,как можно реализовать операцию с проведением подсчёта показаний приборов учета(два раза в сутки утро и вечер) согласно текущему времени Now()?
Более понятно.
Пример:
При снятии замера оператор профукал время и записал показания в 10:10(обычно заносится в 9:00"+-" 5 минут) к примеру 23.03.2016г.
Предыдущий замер был на 9:05 "22.03.2016". С подсчётом и разработкой БД для замеров очень помогла Техник-Сан. Как пересчитать получившийся значение за 25:35мин на 24 часа(суточный приведённый). На калькуляторе без проблем(делим и умножаем в минутах или в часах в числовом формате), в БД тоже наверное требуется форматировать разницу в числовое значение. Как?

Добавлено через 20 минут
Косяк: за 25:05 мин в 24:00. Простите
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2016, 19:13
Ответы с готовыми решениями:

Работа со временем (не с датой)
Здравствуйте Ребята) задача: посчитать цену за переговоры с условием скидки в период с 18:01-21:00 цена=цена*0,95 ну и тд как это можно...

Работа с Датой/временем в запросах
Допустим у нас есть год (в виде обычного числового формата). Необходимо посчитать количество дней до наступления даты...

Определить интервал между текущим временем и временем до звонка
Написать программку отсчитывающую время от текущего времени до конца урока

47
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
04.04.2016, 12:29  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от PuhKMV Посмотреть сообщение
Последовательность перехода.
Переместите строку с кнопкой "Выход" , (у вас это кнопка10), в самый верх.
Теперь при открытии формы фокус будет падать первым делом не на Подчиненную форму, а на кнопу выхода.
Век живи, век учись. Спасибо за подсказку.

Добавлено через 15 минут
Цитата Сообщение от mobile Посмотреть сообщение
При заполнении записи будет на следующей строке высвечиваться тот же номер скважины, что и на текущей. Не обращайте на это внимание. При переходе на новую строку код скважины встанет правильный. Это связано с задание значения по умолчанию и расчетом его на событии Текущая записи.
mobile слов Нет, ну то что доктор прописал. Осталось убрать переход по Таб в поле "Дебит" и можно начинать "работать". Проще наверное уже некуда, хотя безрукие и этого не понимают, но тут хоть объяснять придётся совсем немного (тупо работайте клавишей интер и цифирьками на клавиатуре и всё..) Еще раз спасибо.
0
 Аватар для VinniPuh
9147 / 6179 / 594
Регистрация: 27.03.2013
Сообщений: 20,049
04.04.2016, 12:36
Цитата Сообщение от mobile Посмотреть сообщение
...Я предлагаю другой вариант...
mobile - там на сколько я понял вся заковырка встала из за того, что при открытии формы фокус сразу вставал на поле со списком, которое сразу раскрывалось, а ТС это не очень стало по нраву.
Или вы о чем то другом?
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.04.2016, 12:49
Нет, PuhKMV, заковыка в другом - чтобы не запутаться какую скважину уже ввел, а какую еще нет. Скважин много, запутаться легко.
Конечно, на скважины и даты надо сделать уникальный составной индекс, чтобы нельзя было ввести повторно уже введенную скважину. А предложенный вариант для экономии времени. Сразу дается первая же еще не введенная скважина.
2
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
04.04.2016, 15:27  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
заковыка в другом - чтобы не запутаться какую скважину уже ввел, а какую еще нет. Скважин много, запутаться легко...А предложенный вариант для экономии времени. Сразу дается первая же еще не введенная скважина.
Верно на все сто.
Вариант с фокусом рассматривался мной при невозможности убывающего списка. Представленный вариант mobile даёт возможность заполнить все строки быстро без ошибки их повтора. Раскрывающийся список хорошо, но минимум колдовства с мышью и переходами стрелками ещё лучше для новичков, которым уже под 40 и более годов. Главное правильность и скорость. Данных кроме этих много, обработка их чисто в Екселе без использования VBA занимает от 30мин. до 1,5 часа у разных пользователей.
Как то так...
Остались конечно ещё вопросы:
Есть проблема с результатом в поле "Дебита", связанная со сбоем в телеметрии счётчика, иногда вылетает замер со знаком (-) или заоблачные цифры.

Можно ли полученный отрицательный результат обнулить или вывести текстовое сообщение в поле о некорректности замера? Пока же подумываю о фильтре значений между неким числом и (0).
0
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
18.04.2016, 10:15  [ТС]
Вчера при расчёте замеров через форму наткнулся на косяк расчёта Дебита с учётом их записи по текущему времени. При малых расхождениях от 10 до 30мин. формула работает, но чем больше замер и разница во времени - тем больше ошибка закрадывается в расчет итога.
Косяк был допущен мной в запросе:
T-SQL
1
2
SELECT СегодняУтро.Дата, СегодняУтро.КодСкважины, Round((СегодняУтро.[ЗамерСКЖ(9:00)]-ВчераУтро.[ЗамерСКЖ(9:00)])[B]*[/B](СегодняУтро.ФорматДата+(1-ВчераУтро.ФорматДата))/1000 , 3) AS ДебитУтро
FROM ЗамерУтро AS СегодняУтро INNER JOIN ЗамерУтро AS ВчераУтро ON (СегодняУтро.Дата=ВчераУтро.Дата+1) AND (СегодняУтро.КодСкважины=ВчераУтро.КодСкважины);
Вместо * нужно поставить знак /

В виду того ,что если текущий замер будет внесен в более позднее время чем предыдущий, корреляция или коэффициент времени будет равен более 1-единицы (свыше 24 часов), что в произведении с итак получившимся большим замером, даст ещё больший итоговый результат. Знак деления приводит Дебит к суточному показателю в 24 часа.

То же самое касается и выражения в поле Дебит формы Замер Утро и Вечер:
=IIf(Not [КодСкважины] Is Null;Round(([ЗамерСКЖ(9:00)]-(DLookUp("[ЗамерСКЖ(9:00)]";"ЗамерУтро";"КодСкважины=" & [КодСкважины] & " AND Дата=" & CLng([Дата]-1))))/([ФорматДата]+(1-DLookUp(" [ФорматДата] ";"ЗамерУтро";"КодСкважины=" & [КодСкважины] & " AND Дата=" & CLng([Дата]-1)))))/1000)
Лучше поздно -чем никогда....
0
369 / 88 / 8
Регистрация: 14.08.2012
Сообщений: 248
18.04.2016, 10:30
Словами скажи что те надо. Простыми и понятными. И что такое [ФорматДата]? Это дата или что?
0
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
18.04.2016, 11:03  [ТС]
Цитата Сообщение от odbcsql Посмотреть сообщение
Словами скажи что те надо. Простыми и понятными. И что такое [ФорматДата]? Это дата или что?
Текст читал...
Исправил ошибку, вдруг кто БД возьмёт за исходный код, не все новички в Аксесс сразу въезжают в функционал.
0
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
04.05.2016, 11:12  [ТС]
Прошу помощи!!! Никак не могу добиться обновления подчиненной формы "ДебитСред" после введения вечерних замеров в подчинённую форму "ЗамерВечер" на (18:00) в основной форме "Замеры(текущие)". После закрытия основной формы ,данные естественно обновляются и замеры прописываются, но более рационально и красиво было бы обновления их при внесении и расчёте вечерних замеров. Форма "ДебитСред" создана из запроса с сохранение полей - посчитал что это более простой вариант, дальше пока ступор...
Вложения
Тип файла: rar Замеры (1).rar (99.2 Кб, 1 просмотров)
0
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
04.05.2016, 19:53  [ТС]
Блин ,никак... Хоть кнопку не вешай с открытием этой подформы.
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.05.2016, 22:57
Удалось добиться появления подформы только когда:
1. Заменил тип поля КодСкважины в обих таблицах замеров на длинное целое вместо действительного
2. В свободном поле Дата в главной форме удалил источник "=Date()" и перенес его в значение по по умолчанию. Дело в том, что запрос-источник подформы ДебитСред работает только с двумя последовательными датами. Если вчерашней даты нет, то запрос пуст. А поле Дата из-наличия источника было не модифицируемое. У Вас же даты кончались 28 апреля. Введя 29 апреля получил значения в подформе ДебитСред.
3. На событии После обновления подформ ЗамерыУтро и ЗамерыВечер (во Внедренный14), записал обновление подформы ДебитСред
Visual Basic
1
2
3
Private Sub Form_AfterUpdate()
    Me.Parent!ДебитСред.Form.Requery
End Sub
Вложения
Тип файла: rar Замеры.rar (46.7 Кб, 1 просмотров)
1
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
06.05.2016, 12:08  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Удалось добиться появления подформы только когда:
Ну нету слов ,вот он Полёт мысли и её реализация в живую.
mobile, Огромное Спасибо, знал бы я как плюсануть тебе в репутацию ещё раз так 150-200 сверху - даже не задумался бы.

А я уж ,что то только не ковырял: и выражение космической длины прописывал и обновление формы в VBA ,ну никак. И в итоге ,когда форум почему то вдруг "слёг" и показал фигу в поисковике, пришлось мне неучу остановиться на отображение данного замера в форме "Архив Замеров" , а в Замерах данную подформу удалил и переписал название кнопки "Архив" на "Дебит среднесут." - ну не ехать же на работу с "пустым ведром" .

Еще раз спасибо и с Уважением.
Сталкер.
0
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
06.05.2016, 14:05  [ТС]
mobile
Подскажи пожалуйста ,где косяк
Выдаёт ошибку зараза, подозреваю дело в том ,что в моей рабочей БД родительская форма - это есть "Кнопочная форма" и он не закрывается при переходе по формам.
Visual Basic
1
2
3
Private Sub Form_AfterUpdate()
    Me.Parent!ДебитСред.Form.Requery
End Sub
Как обновить именно форму "Замеры текущая" не задевая "Кнопочную"? Менял на:
Visual Basic
1
2
3
Private Sub Form_AfterUpdate()
    Me.Parent!ДебитСред.Form.Замеры_текущая.Requery
End Sub
, та же ошибка.
Миниатюры
Работа с текущим  временем  
0
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
06.05.2016, 14:44  [ТС]
Фу, чуть не раскромсал всё рабочую БД ,думал трындец: начали пропадать подформы в "Текущей"- и это было лишь пол беды...
Всё перепробовал и методом втыка всё-таки нашёл. Для моёй рабочей почему то катит только такой код.
Visual Basic
1
2
3
Private Sub Form_AfterUpdate()
  Me.Parent!ДебитСред.Requery
End Sub
mobile без твоего исходника вообще в моей "башке" ни чего бы не заработало, а так опять колёса закрутились - мозг оживился от всплеска в него адреналина.
0
 Аватар для VinniPuh
9147 / 6179 / 594
Регистрация: 27.03.2013
Сообщений: 20,049
07.05.2016, 08:09
Цитата Сообщение от Stalker73i Посмотреть сообщение
чуть не раскромсал всё рабочую БД
А ЧЁ, на всякий пожарный случай не извращаетесь на копиях?
Я вот лично если чЁ задумаю сотворить с БД, то копирую файл в отдельную папочку - Разработки и там уже извращаюсь как могу, и если всё чики-брики, то сохраняю под следующим после самым последнмм номером, типа +1
0
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
08.05.2016, 15:10  [ТС]
Цитата Сообщение от PuhKMV Посмотреть сообщение
А ЧЁ, на всякий пожарный случай не извращаетесь на копиях?
Я вот лично если чЁ задумаю сотворить с БД, то копирую файл в отдельную папочку - Разработки и там уже извращаюсь как могу, и если всё чики-брики, то сохраняю под следующим после самым последнмм номером, типа +1
У меня их итак несколько штук ,да и сам "принцип работы" такой же как у тебя, только вот копию на домашнем компе создать в этот раз не соизволил и понадеялся на Авось, а авоська чуть "не прохудилась" и если бы эт случилось месяца два назад ,то волос по телу убавилось однозначно много - сейчас уже проще и падеж волос незначительный и укладывается в естественную норму.
А так - косяк мой: При внедрении исходника в рабочую БД я не учёл , что название формы и обновляемого поля в ней у меня совпадают ,понял это лишь когда начал играть с именами и отлавливать ошибку в сообщениях.
0
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
17.05.2016, 12:58  [ТС]
Люди Добрые!
Подскажите возможно ли при выводе данных из БД в Ексель ,сделать так чтобы дата из запроса не повторялась в столбце "Дата" таблицы Ексель, а служила бы заголовком для нескольких строк с одинаковой датой?
Следующая запись с последующёй датой - опять как заголовок и пустые ячейки для строк с той же датой.
Визуально для отправки таблиц в моём случае это бы было оптимальным вариантом. А то уж я своих напарников замучился обучать заполнению и автообновлению, если же ещё и мастеров с диспетчерами - тогда наверное лучше обратно в каменный век.

Добавлено через 29 минут
Что бред опять - без вариантов?
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.05.2016, 13:04
Если в запросе есть уникальное поле (для определенности назовем его id), то можно примерно так
SQL
1
2
3
SELECT id, iif(id=(SELECT MIN(id) FROM Запрос t WHERE t.Дата=Запрос.Дата), Дата, NULL) AS Дата, другие поля
FROM Запрос
ORDER BY Дата,  id
1
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
17.05.2016, 13:19  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Если в запросе есть уникальное поле (для определенности назовем его id), то можно примерно так
Пропробую хоть пока и не въехал. То есть нужно - чтобы запрос был с уникальным полем (типа "Счётчик" ,"Числовое" последовательное) или можно использовать само поле Дата? У меня пока запрос без уникального поля , но могу и поэкспериментировать на копии.
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.05.2016, 13:40
Нужно именно уникальное поле. Счетчик ли, текстовое поле или числовое неважно. Лишь бы уникальное. Суть ведь в чем - для каждого блока записей с одинаковыми датами находим минимальное значение уникального поля и разрешаем для этой записи показать дату. Для всех остальных записей с той же датой (но большими ид) поле даты будет пустое. Т.е. идея основана именно на выборе минимума среди уникальных значений. Соответственно нужно поле, содержащее такие уникальные значения.
1
127 / 25 / 1
Регистрация: 07.02.2016
Сообщений: 238
17.05.2016, 20:18  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Т.е. идея основана именно на выборе минимума среди уникальных значений. Соответственно нужно поле, содержащее такие уникальные значения.
"Идея" нравится однозначно, а в Ексель пропишутся все поля из запроса (т.е. с уникальным) или можно "начать чисто" со столбца "Дата" и т.д?
В подстановке данных из БД я пока полный Null и решаю задачу вставки запроса из БД непосредственно в инструментах Ексель.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.05.2016, 20:18

Всплывающие сообщение в трее с текущим временем
При нажатии на кнопку выходило сообщение в трее с текущим временем

Копирование файла в каталог с текущим временем в имени
доброго времени суток! почитал по форуму, может плохо искал, но искал! есть задача, проверить доступность сетевого диска и если...

Необходимо заполнять столбец в таблице БД текущим временем
задача такая(Visual C#): необходимо заполнять столбец в таблице БД текущим временем, подскажите пожалуйста как это сделать, литературе так...

Поиск по базе данных записей с текущим временем на ПК
Помогите пожалуйста сделать поиск по базе данных. Есть столбец в котором указано дата и время, и нужно вывести в DataGrid только те строки,...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru