powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / обновление дат
7 сообщений из 7, страница 1 из 1
обновление дат
    #32725956
Running
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю как выполнить такой фокус.
Есть таблица, описывает движение объектов по тех. процессу, с полями Номер_объекта, Дата_начала_состояния, Длительность_состояния, Номер_состояния.
На ней создана форма, разрешено менять Длительность_состояния.
При ее изменении в одной записи, надо заново расчитать все даты в последующих записях для данного объекта, обновить в таблице и отобразить их в форме.
Я понимаю, что можно хранить только поле Длительность_состояния, но база уже есть и работает с этими полями.
...
Рейтинг: 0 / 0
обновление дат
    #32726056
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, то идея у вас в следующем

Объект может иметь несколько состояний (будем считать что они идут подрят)
Причем каждое следующее состояние начинается непосредственно по завершении преыдущего)

Основная идея:
По событию на изменее длительности вычисляем разницу пересчета
т.е. [старое значение] - [новое значение]
Код: plaintext
1.
2.
x = Длительность_состояния.OldValue - Длительность_состояния.Value
cur_num = Номер_объекта.Value
cur_sost = Номер_состояния.Value
Дальше поступаем так:
Ко всем состояниям, больним текущего, (причем у текущего объекта) изменяем дату начала состояния
Код: plaintext
1.
2.
Update Table
Set [Дата_начала_состояния] = [Дата_начала_состояния] + x
Where ([Номер_объекта] = curnum) And ([Номер_состояния] > cur_sost)
И после выполнения запроса делаем Requery форме
...
Рейтинг: 0 / 0
обновление дат
    #32726289
Running
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, paparoma. Если заработает, просто изящное решение. Там еще много других проблем в базе. Сделаю сообщу.
...
Рейтинг: 0 / 0
обновление дат
    #32727300
Running
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня работает база под Office 97, запрос Update Table ... в прямую не идет, пришлось создать его в QueryDef, выполнить и удалить, все сработало.
Я с Access немного работаю, не знаю почему Update Table ... не идет, пишет неизвестная ф-ция.
Это у меня такая версия, может, что-то надо доустановить?
...
Рейтинг: 0 / 0
обновление дат
    #32727442
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RunningУ меня работает база под Office 97, запрос Update Table ... в прямую не идет, пришлось создать его в QueryDef, выполнить и удалить, все сработало.
Я с Access немного работаю, не знаю почему Update Table ... не идет, пишет неизвестная ф-ция.
Это у меня такая версия, может, что-то надо доустановить?
Table - в моем контексе - это название таблицы (вашей), т.е. вместо Table надо написать имя обновляемой таблицы

Для того, чтобы выполнить запрос из VBA его надо сформировать в виде текстовой строки (например запихнуть в перемнную)
А затем выполнить (например через DoCmd)

Код: plaintext
1.
2.
3.
strSQL = "Update Table " & _
"Set [Дата_начала_состояния] = [Дата_начала_состояния] + " & x & " " & _
"Where ([Номер_объекта] = " & cur_num & ") And ([Номер_состояния] > " & cur_sost & ")"
DoCmd.RunSQLCommand strSQL
...
Рейтинг: 0 / 0
обновление дат
    #32727986
Running
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз спасибо, Рараroma я, естественно указал свою таблицу, и сделал как вы пишите, все работает.
А по времени выполнения, тоже c использованием Recordset не быстрее?
...
Рейтинг: 0 / 0
обновление дат
    #32728009
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Running Еще раз спасибо, Рараroma я, естественно указал свою таблицу, и сделал как вы пишите, все работает.
А по времени выполнения, тоже c использованием Recordset не быстрее?
По времени - лучше скажет практика (с конкретными данными, железом и реализацией)

А предварительно могу сказать, что с rs не быстрее
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / обновление дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]