powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поле таблицы должно хранить только год.
8 сообщений из 8, страница 1 из 1
Поле таблицы должно хранить только год.
    #39299028
Asee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Access 2003
Собственно как создать поле записи Дата/время которое будет содержать только год?

Создаю поле: Year, Тип данных: Дата/время, выбираю Формат поля: Краткий формат даты и в Маска ввода: 0000;0;_

Набираю в поле скажем 2016 и после Enter получаю окно сообщения:

Введённое значение не подходит для данного поля.

Например, в числовое поле введены текст или число, превышающее предел, заданный в свойстве "Размер поля" (FieldSize).

Что не так?
...
Рейтинг: 0 / 0
Поле таблицы должно хранить только год.
    #39299042
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы пытаетесь записать число в поле типа Дата, естественно возникнет ошибка.
Формат ввода только предоставляет удобство в ограничениях по вводу данных. Форматом поля можно представить дату в любом необходимом виде. Но если нужно сохранить в поле типа Дата только год, при этом месяц-день не важны, то это можно сделать только программно преобразовав число вроде 2016 в дату, например 1.1.2016 или 5.5.2016.

Если вам нужно хранить действительно только год, выберите для столбца тип данных Число и не заморачивайтесь с ненужными преобразованиями.
...
Рейтинг: 0 / 0
Поле таблицы должно хранить только год.
    #39299044
Asee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. у Access нет возможности хранить только год в типе поля Дата/время?
...
Рейтинг: 0 / 0
Поле таблицы должно хранить только год.
    #39299048
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы почитайте, как хранит Акцесс данные типа Дата/Время. На самом деле это число с плавающей точкой, целая часть которого представляет собой число дней начиная с 30 декабря 1899 (0), а дробная часть от .0 до .99999 - дробная часть дня, нужно умножить дробную часть на 24, чтобы получить часы, минуты и секунды. Т.е. отбросить время элементарно, любая только дата - это целое число, а вот выделить из этого числа год можно только дополнительными вычислениями.
...
Рейтинг: 0 / 0
Поле таблицы должно хранить только год.
    #39299051
Asee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Самое интересное, что у поля с типом данных Дата/время есть возможность выбрать(ввести) маску ввода. Так вот при выборе есть отдельная строка Год и в столбце Вид данных: стоит 1995. После выбора маски Год получаем 0000;0;_
Но при вводе значения года выкатывается окно с сообщением, которое описал в первом посте.

Маску поля можно задавать полям с типом Дата/время или Текст .

Вопрос где здесь логика, может всё таки есть ещё какие нибудь требования к полю даты?
...
Рейтинг: 0 / 0
Поле таблицы должно хранить только год.
    #39299053
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asee,
Еще раз: маска ввода не производит никаких вычислений , только заставляет вводить в заданном формате. Вычисления на вашей совести.
...
Рейтинг: 0 / 0
Поле таблицы должно хранить только год.
    #39299055
Asee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShinAsee,
Еще раз: маска ввода не производит никаких вычислений , только заставляет вводить в заданном формате. Вычисления на вашей совести.

Я в курсе, но где логика если есть возможность выбрать для поля Дата/время маску Год заложенную в Access по умолчанию и после этого бить на неправильный тип вводимых данных.
Выбрал маску Краткий формат даты 00.00.0000;0;_ для того же поля и всё пашет, правда нужно вводить дату и месяц.
...
Рейтинг: 0 / 0
Поле таблицы должно хранить только год.
    #39299059
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aseeправда нужно вводить дату и месяц.
Вот поэтому и пашет, потому что дата и месяц вводятся, а вы хотите не вводить дату и чтобы Акс магическим образом понял, что вам нужен только год, а остальные обязательные части в виде даты и месяца могут быть любыми, а что вместо них подставлять - не понятно. Так не работает.

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


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