Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2011, 21:40   #1
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию Преобразование данных

Здравствуйте.
При попытке преобразовать данные текстового типа в тип "дата\время" Выдается ошибка "приложению access не удается изменить тип данных не хватает места на диске или памяти"
Текстовое поле (которое нужно преобразовать в дату\время) в таблице выглядит вот так: [17/02/1998 в некоторых записях вот так: [11/07/2007].
Возможно ли преобразовать данное поле в тип "дата\время" "длинный формат даты" с маской ввода: 99.99.0000;0;_
Спасибо за ответы!
пи.сы.
Места на диске 232 гб, оперативки 2 гб я не думаю, что этого недостаточно.
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол

Последний раз редактировалось atenon; 04.03.2011 в 21:46.
atenon вне форума Ответить с цитированием
Старый 04.03.2011, 22:49   #2
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от atenon Посмотреть сообщение
Здравствуйте.
При попытке преобразовать данные текстового типа в тип "дата\время" Выдается ошибка "приложению access не удается изменить тип данных не хватает места на диске или памяти"
Текстовое поле (которое нужно преобразовать в дату\время) в таблице выглядит вот так: [17/02/1998 в некоторых записях вот так: [11/07/2007].
Возможно ли преобразовать данное поле в тип "дата\время" "длинный формат даты" с маской ввода: 99.99.0000;0;_
Спасибо за ответы!
пи.сы.
Места на диске 232 гб, оперативки 2 гб я не думаю, что этого недостаточно.
Здравствуйте, интересно конечно увидеть как именно Вы преобразовываете данные?

так преобразует в обычную дату
CDate((Mid([неправильнаядата], 2, 10)))
а с маской ввода я что то не понял, поидее она применяется при ручном вводе данных в поле формата дата,и задается в свойствах поля, данные Вы же пытаетесь преобразовать программно в текстовом поле
советую сначала преобразовать данные, а затем изменить формат поля и применить маску
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 05.03.2011, 04:40   #3
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Цитата:
Здравствуйте, интересно конечно увидеть как именно Вы преобразовываете данные?
Как я это делал показывать не буду, чтобы лишний раз не демонстрировать свою некомпетентность ))))
Цитата:
советую сначала преобразовать данные, а затем изменить формат поля и применить маску
Понятно, спасибо.
Цитата:
CDate((Mid([неправильнаядата], 2, 10)))
[неправильнаядата] это имя поля которое нужно преобразовать?
Подскажите где нужно указать имя таблицы, и что значат цифры 2, 10.
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 05.03.2011, 10:38   #4
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию


UPDATE tbl SET [неправильнаядата] = CDate((Mid([неправильнаядата], 2, 10))) ;


tbl- ваша таблица, неправильная дата- Ваше поле
необходимо отобрать 10 символов ,начиная со 2 символа

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

С уважением, Дмитрий
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 05.03.2011, 19:07   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте atenon.
важно : к рекомендации Дмитрия добавлю, при проведении этой и других операций над БД, предварительное создание резервной копии файла БД- обязательно!!!
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 07.03.2011, 07:53   #6
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Забил в конструкторе вот такую строку
UPDATE akmol SET [DOCUMENT_BEGIN_DATE] = CDate((Mid([DOCUMENT_BEGIN_DATE],2,10)));
Запрос выполняется, появляется сообщение, что некоторые поля не удалось обновить, нажимаю ок. Но когда перехожу в режим конструктора таблиц, тип поля так и есть "текстовой" визуально никаких изменений в таблице не видно, меняю тип поля с текстового на дату/время выдается ошибка.
Посмотрите пожалуйста может быть я в запросе что то напутал?
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 07.03.2011, 09:51   #7
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Все получилось!!! Всем спасибо за помощь!!
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 28.12.2011, 01:32   #8
Wahrheit
Новичок
Джуниор
 
Регистрация: 28.12.2011
Сообщений: 1
По умолчанию

Здравствуйте.У меня похожий вопрос.
Есть большая база (>1млн строк) из 3-х столбцов, два из них memo, и одно числовое.
Необходимо привести все в текстовый формат. При попытке сделать это через конструктор, выдается ошибка "приложению access не удается изменить тип данных не хватает места на диске или памяти".
Как это можно сделать?
Wahrheit вне форума Ответить с цитированием
Старый 28.12.2011, 16:47   #9
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Делаете запрос на создание таблицы в другой базе (вероятнее всего файл становится больше 2Гб) и на поля ставите что-то вроде trim(str([имя таблицы]![имя поля]))
gluk_fm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
преобразование данных ShamanK Microsoft Office Excel 2 06.09.2010 17:39
Преобразование типов данных!! Dima_Dima Общие вопросы Delphi 5 01.09.2010 17:33
Преобразование типов данных !!!!!!!!!!! Dima_Dima Общие вопросы Delphi 2 01.09.2010 16:31
Преобразование типа данных L_M PHP 4 03.02.2010 21:13