Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 609
1

Как вставить текущую дату в форму и в таблицу через выражения при добавлении новой записи

19.07.2017, 09:22. Просмотров 4658. Ответов 14
Метки нет (Все метки)

Как вставить текущую дату в форму и в таблицу через выражение(построитель выражений) при добавлении новой записи?

В приложенном примере реализовано добавление текущей даты только в форму.
0
Миниатюры
Как вставить текущую дату в форму и в таблицу через выражения при добавлении новой записи  
Вложения
Тип файла: zip vpr_00.zip (43.6 Кб, 7 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2017, 09:22
Ответы с готовыми решениями:

При создании новой записи добавлять текущую дату в предыдущую запись
есть две таблицы №1 Услуги "услуги", "дата","цена услуги на дату" цена на каждую услугу может...

Как с помощью ASP вставить текущую дату в таблицу MS Access 97?
Как с помощью ASP вставить текущую дату в таблицу MS Access 97, если формат поля в таблице...

Как вставить текущую дату через SQL?!!
Как вставить дату в поле Date MS Access через запрос SQL?!! Если использовать insert into .....

Ошибка при добавлении из подчиненной формы новой записи в таблицу
Помогите исправить ошибку. База данных создана для ввода информации по договорам и приложениям к...

14
Эксперт MS Access
26224 / 14049 / 3081
Регистрация: 28.04.2012
Сообщений: 15,417
19.07.2017, 09:27 2
Лучший ответ Сообщение было отмечено zakaz_77 как решение

Решение

Сделать в форме источником поля data не Now(), а поле таблицы и задать полю формы значение по умолчанию, равное Now()
2
Вложения
Тип файла: rar vpr_00.rar (16.7 Кб, 13 просмотров)
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 609
19.07.2017, 10:12  [ТС] 3
mobile,
Некорректно сформулировал...
имел ввиду: дата и время.
В предложенном вами решении подставляется время предыдущей записи.

Не могли бы вы подсказать как сделать с учетом приведённого выше условия
0
Миниатюры
Как вставить текущую дату в форму и в таблицу через выражения при добавлении новой записи  
6335 / 3379 / 735
Регистрация: 05.10.2016
Сообщений: 9,297
19.07.2017, 10:12 4
Цитата Сообщение от zakaz_77 Посмотреть сообщение
В приложенном примере реализовано добавление текущей даты только в форму.
А тут уже нужно разобраться.
Что вам нужно?
Дата и время или просто дата - и это не одно и то же.
У накладной (допустим) есть дата оформления, а у даты заезда в гараж у грузовика есть дата и время.
С просто датой работать проще.
Тогда: Me!Поле_Даты = Date()
Пишем длинное целое, пропуская дробную часть = время....
1
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 609
19.07.2017, 10:22  [ТС] 5
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Дата и время или просто дата - и это не одно и то же.
Понимаю... Требуется "Дата и время" в формате как на скринах


Можно ли это сделать через "Построитель выражений" и как?
0
6335 / 3379 / 735
Регистрация: 05.10.2016
Сообщений: 9,297
19.07.2017, 10:34 6
Цитата Сообщение от zakaz_77 Посмотреть сообщение
Можно ли это сделать через "Построитель выражений" и как?
Если дата и время то:
= Now()
См. Функция Now
1
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 609
19.07.2017, 10:47  [ТС] 7
Eugene-LS,
В сообщении #2 это и реализовано...
Я так тоже пробовал...

Но у этого решения недостаток: оно вставляет "время" предыдущей записи, а не новой.

как это сделать правильно?
0
6335 / 3379 / 735
Регистрация: 05.10.2016
Сообщений: 9,297
19.07.2017, 11:08 8
Цитата Сообщение от zakaz_77 Посмотреть сообщение
Но у этого решения недостаток: оно вставляет "время" предыдущей записи, а не новой.
А вот тут я уже не понял.
Функций Now() - возвращает текущий Датер и Времел.
Может вы его используете не там где нужно?

Зачастую достаточно указать в конструкторе формы у поля:
DefaultValue Property = Now()
И всё.
1
Эксперт MS Access
26224 / 14049 / 3081
Регистрация: 28.04.2012
Сообщений: 15,417
19.07.2017, 11:19 9
Лучший ответ Сообщение было отмечено zakaz_77 как решение

Решение

Цитата Сообщение от zakaz_77 Посмотреть сообщение
Но у этого решения недостаток: оно вставляет "время" предыдущей записи, а не новой.
Значение по умолчанию вставляются как только образуется новая запись. Она создается в момент начала редакции текущей записи. Если же Вы хотите писать в поле дату/время окончания записи, то это можно сделать в коде, например на событии После обновления (AfterUpdate) поля tbl_id:
Visual Basic
1
2
3
Private Sub tb1_id_AfterUpdate()
    Me.data = Now
End Sub
1
Вложения
Тип файла: rar vpr_00.rar (19.3 Кб, 9 просмотров)
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 609
19.07.2017, 11:28  [ТС] 10
mobile,
А такие вещи через "Построитель выражений" по средствам выражений реализовать можно?
0
6335 / 3379 / 735
Регистрация: 05.10.2016
Сообщений: 9,297
19.07.2017, 11:46 11
Цитата Сообщение от zakaz_77 Посмотреть сообщение
А такие вещи через "Построитель выражений" по средствам выражений реализовать можно?
Хоть вопрос и не ко мне - встряну (извиняйте)
Можно - но очень частично и путано.

Лучше использовать средства VBA - и нет там ничего сложного.

Весь VBA - это прибл. 300 правил и встроенных функций - совсем не сложно.
Да! он расширяется за счёт API и подключаемых библиотечек - но это уже другая тема.

По умолчанию у вас объектная модель MSA + DAO, что вполне достаточно для решения большинства задачек.
3
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 609
14.08.2017, 22:26  [ТС] 12
mobile,
Хотел бы ещё раз вернуться к этому вопросу.
Уточню(дополню): требуется, чтобы при добавлении новой записи фиксировалось Дата и время добавления

Прокомментирую предложенные вами решения.

Решение №1. Пост #2
Вставить дату время.
Установить для поля "data_time" значение по умолчанию "Now()"

Недостаток.
Сценарий:
1. Исходное положение.
Строка для новой записи уже имеет Дату/время 21:56:28
2. Добавление записи.
На момент добавления записи "name_12" системное время 21:59:39.
Но т.к. мы добавляем запись в готовую строку, то для записи "name_12"
фиксируется время предыдущей записи 21:56:28.

Недостаток то, что для новой записи фиксируется время предыдущей записи.


Решение №2. Пост #9
Недостаток: при обновлении поля "tb1_id" обновляется и Дата/время.

Чтобы не было путаницы сделал новый файл. Прилагаю.

Попытался применить в новом файле Решение №2, повесив на обновление поля "id" (со счётчиком), но не работает.

Вопрос
Как сделать чтобы при добавлении новой записи фиксировалось текущая Дата и текущее время в формате ДД:ММ:ГГГГ ЧЧ:ММ?
0
Миниатюры
Как вставить текущую дату в форму и в таблицу через выражения при добавлении новой записи   Как вставить текущую дату в форму и в таблицу через выражения при добавлении новой записи   Как вставить текущую дату в форму и в таблицу через выражения при добавлении новой записи  

Вложения
Тип файла: zip date_time_05.zip (26.8 Кб, 2 просмотров)
Эксперт MS Access
26224 / 14049 / 3081
Регистрация: 28.04.2012
Сообщений: 15,417
14.08.2017, 23:07 13
Лучший ответ Сообщение было отмечено zakaz_77 как решение

Решение

zakaz_77, попробуйте вариант где анализируется значение датного поля и если пустое, то на событии Нажатие клавиши (KeyPress) поля zp_name в датное поле вставляется текущие дата/время
Visual Basic
1
2
3
Private Sub zp_name_KeyPress(KeyAscii As Integer)
    If IsNull(Me.data_time) And KeyAscii >= 32 Then Me.data_time = Now
End Sub
Вариант конечно не полный, желательно было бы точнее анализировать коды клавиш. Но сейчас главное посмотреть подойдет ли решение в принципе.
1
Вложения
Тип файла: rar date_time_05.rar (18.1 Кб, 7 просмотров)
9 / 9 / 4
Регистрация: 23.12.2015
Сообщений: 609
15.08.2017, 07:45  [ТС] 14
mobile,
Работает.
Спасибо.

Поинтересуюсь для кругозора.

Получается у Аксес нет штатного средства для решения такой задачи?
Что-то типа Now, но с нормальным механизмом работы...
Задача вроде не уникальная, а как мне казалась распространённая и очевидная...
0
Эксперт MS Access
26224 / 14049 / 3081
Регистрация: 28.04.2012
Сообщений: 15,417
15.08.2017, 08:15 15
Ну можно и попроще. Да и надежнее. Без всяких дополнительных анализов. Задаем DefaultValue=Now() для поля data_time, а на текущей записи обновляем значение по умолчанию. При переходе по записям Me.data_time.DefaultValue будет постоянно обновляться
Visual Basic
1
2
3
Private Sub Form_Current()
    Me.data_time.DefaultValue = Me.data_time.DefaultValue
End Sub
Просто походите по записям и увидите как умолчательное значение даты/времени меняется в новой записи
1
Вложения
Тип файла: rar date_time_06.rar (20.0 Кб, 8 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2017, 08:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

SQLInsert не работает запрос при добавлении новой записи в таблицу
Здравствуйте, у меня вопрос, который не получается никак решить ((( Помогите плз ! Есть DBGrid, к...

Как вставить текущую дату в Lazarus через INSERT
Есть две таблицы: Disk id_disk name counts price prodaga id_prodaga disk

Никак не получается вставить текущую дату в таблицу
Здравствуйте. Вроде простой вопрос, но я уже всю клавиатуру разбил, решая его. Нужно просто...

Создать триггер на таблицу sdelka, который, при добавлении новой записи, добавит эту запись в другую
пытаюсь научиться создавать триггеры в бд, и т.к я полный чайник, мало чего получается. задача...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.