|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Есть данные даты в Excel, которые нужно импортировать в Access. В первом столбце формат даты в виде точки, а во втором разделяется косой чертой. В Excel указан формат даты. Мне интересно понять, почему первый столбец не импортируется и появлябтся только пустые значения, а второй нормально. Мне нужно получить гарантированный ввод даты в Access, независимо от того, точка указана в Excel или черта. Как можно этого добиться? В Excel date_1 date_214.08.1987 14/08/198731.01.1970 31/01/197009.12.1974 09/12/197421.06.1965 21/06/196510.05.1976 10/05/197611.03.1949 11/03/194926.01.1968 26/01/196819.12.1972 19/12/197208.02.1963 08/02/1963 В Access date_1 date_2 14/08/1987 31/01/1970 09/12/1974 21/06/1965 10/05/1976 11/03/1949 26/01/1968 19/12/1972 08/02/1963 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 08:21 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Импортировать селектом типа Код: sql 1. 2. 3. 4.
в полях указывать явно используемый формат даты типа Format([Field1],"@@.@@.@@@@"). Пишу без проверки, мог ошибиться, но идея должна быть понятна. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 08:59 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
MrShinИмпортировать селектом типа Код: sql 1. 2. 3. 4.
в полях указывать явно используемый формат даты типа Format([Field1],"@@.@@.@@@@"). Пишу без проверки, мог ошибиться, но идея должна быть понятна. Идея понятна, но так не думаю, чтобы устроило. Диапазон может быть разным и я не смогу контролировать его, так как импортирование данных будет производить оператор и данные будут иметь разное количество строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 09:08 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Проблема не воспроизводится. Office 2007 Prof. Таблицу скопировал в файл Excel. Сохранил (форматы XLS и XLSX). Выполнил импорт внешних данных. Для обоих исходных форматов правильно импортированы оба поля - и значения, и формат. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 09:34 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Что же до приложенных файлов - там в файле XLSX оба столбца имеют одинаковый формат ДД.ММ.ГГГГ. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 09:36 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Исправил формат ячеек в XLSX. Выполнил импорт через VBA-код на форме. Импортированы оба поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 09:41 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
AkinaИсправил формат ячеек в XLSX. Выполнил импорт через VBA-код на форме. Импортированы оба поля. На какой формат исправили? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 09:46 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
excel_accessНа какой формат исправили? ДД|VV|UUUU/ Потом ради любопытства попробовал ещё пару совершенно "отмороженных" форматов, с дублированием частей и кучей паразитных символов. Результат - формат поля ожидаемо не влияет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 09:52 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Ну в смысле ДД/ММ/ГГГГ ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 09:58 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Открыл ваш XLSX, даты выглядят так: 14.08.1987 14 . 08 . 87 Отсюда два вывода: 1. У вас в системе разделитель элементов даты - "/", а не ".", как у большинства. 2. В 1-м столбце не дата, а текст, похожий на дату. При разделителе "." этот текст легко преобразуется в дату при импорте в поле типа "Дата" существующей таблицы, а при "/", ИМХО, не понимает. При импорте в новую таблицу это поле будет иметь тип "Текст" и будет заполнено. Если я угадал, то перед импортом можно подправить файл, выполнив замену "." на "/" в выделенном диапазоне. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 12:00 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 12:24 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Да, перед импортом если заменить "." на "/", то тогда нет проблем. Но это лишняя работа для оператора. А замена на ДД/ММ/ГГГГ, тоже ничего дало. Ладно, пока не найду выход, оператору придется вручную делать замену. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 14:22 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
excel_accessперед импортом если заменить "." на "/", то тогда нет проблем. Но это лишняя работа для оператора.Ну так импортируй данные как текстовые во временную таблицу, а оттуда запросом со всякоразными преобразованиями в боевую - какие проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 14:49 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
excel_access, решение в лоб - изменить системные настройки. Кстати, почему разделитель "/"? В какой стране вы живете? Другой путь - преобразование текста в дату в запросе на добавление в вашу таблицу, берущем данные непосредственно с листа или из промежуточной таблицы, созданной в результате импорта. Например: Код: sql 1.
Это при условии, что нет пустых ячеек и все даты имеют по 2 цифры в днях и месяцах. Иначе нужна более сложное выражение, а то и собственная функция. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 15:01 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Может я чё не понял: при импорте по Вашему коду поле data_1 - текст а с этой строкой - дата Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2016, 16:22 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Привет ребята! Мне нужна ваша помощь, я только начинаю изучать Access и столкнулся с одной проблемой ! У меня обычный формат даты "02-Nov-52" есть ячейки содержащий " - - " и " " вот такие данные. я как бы нашел алгоритм. Но почему то оно не работает когда поле пустая он выдает ощибку 94. Может вы знайте в чем проблема. Мне нужно чтобы он ячейку с минусом и пустую превратил в 000000000. Public Function date4(num1) If num1 = " - -" Then date4 = "00000000" Else x1 = Mid$(num1, 3, 5) x2 = Left$(num1, 2) x3 = Right(num1, 2) Select Case x1 Case "-jan-": x1 = "01" Case "-feb-": x1 = "02" Case "-mar-": x1 = "03" Case "-apr-": x1 = "04" Case "-may-": x1 = "05" Case "-jun-": x1 = "06" Case "-jul-": x1 = "07" Case "-aug-": x1 = "08" Case "-sep-": x1 = "09" Case "-oct-": x1 = "10" Case "-nov-": x1 = "11" Case "-dec-": x1 = "12" End Select If x3 > 15 Then x3 = "19" + x3 Else x3 = "20" + x3 End If date4 = x2 + x1 + x3 Debug.Print date4 End If Спасибо За Внимания ! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 13:15 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Aslonov MУ меня обычный формат даты "02-Nov-52" Ну это обычный не для всех... О чем, вообще, речь? Это дата в текстовом поле таблицы Access? Или это Excel? Или в текстовом файле? Если первое, то, видимо, если поле пустое, то это не "", а Null. И проверять его надо функцией IsNull(). Или преобразовывать в строку функцией NZ(). Например, строку If num1 = " - -" Then можно заменить на: If NZ(num1, " - -") = " - -" Then PS. Код: vbnet 1. 2. 3. 4. 5.
А почему > 15, если принято > 29? И еще, обычно для конкатенации строк используется "&". "+" тоже можно, но с ограничениями и в специфических ситуациях. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 14:56 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Спасибо большое! Вы можете оставит мне свои контактные данные.? Чтобы я мог лично связаться с вами. ! Я очень нуждаюсь в ваших знаниях. It@furuz.tj ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2016, 15:12 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Привет ребята. Помогите мне выбрать "30-Apr-95 00:00:00" из этого формата только год рождения. Все остальное у меня показывает. Почему то у меня вместо 95-того показывает 20000 знаю проблема находится на формуле x3 но незнаю как его устранить ( Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 07:24 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Вот скрин от тест-формы ! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 07:25 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Aslonov M, возьми эту 6209665 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 07:56 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Но для меня это кажется немного сложным. А вы не можете поправлять мой алгоритм? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 08:39 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Aslonov M, возьми как есть, потом может и разберёшься. Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 08:44 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
не парься, Спасибо большое конечно За помощь) Мне нужна консультация Не могли бы вы мне помочь ?... Не хочу просто каждый раз обратится с тупыми вопросами на форуме ! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 08:51 |
|
Импорт даты из Excel в Access
|
|||
---|---|---|---|
#18+
Aslonov M, на самом деле там код не сложный. Примерно так же как у тебя, только более универсальный. Как ты наверное понял, на вход в функцию подаются два параметра - строка с датой и шаблон, на основе которого разбирается дата. В функции идёт анализ строки с датой (и временем). Соответственно выделяются из строки Дата ( ss ) и Время ( st ). Далее в строке заменяются разделители на пробел и строка Дата разбивается в массив ( v ). Каждый член массива анализируется согласно с шаблоном ( ymd ) на принадлежность составной части даты (день, месяц, год). После чего собирается дата (функция DateSerial ), иначе будет сгенерирована ошибка времени выполнения, которую можно обработать в вызывающей функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2016, 09:23 |
|
|
start [/forum/topic.php?fid=45&msg=39205714&tid=1613715]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 149ms |
0 / 0 |