Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение типа поля на нужное в процессе импорта / 3 сообщений из 3, страница 1 из 1
06.10.2003, 16:04
    #32285302
beseder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля на нужное в процессе импорта
Искал по форуму, но как-то все не то, что нужно.
Что делается:
Импортируется excel док в таблицу.
В таблице Access есть поле №Накладной (тип текстовый).
В таблице Excel есть поле №Накладной, в котором все данные могут быть разными.
Если первым в Excel идет накладная с номером "1234", то при импорте (TransferSpread...) Access, глядя на данные в столбце №Накладной, присваивает тип поля - числовой. Таким образом, идущие ниже данные, отличные от подобного типа, в таблицу не импортируются.
пример: первым идет № типа: 12345, следующим- ФГ-34/56.
Как сделать так, чтобы еще в процессе обработки (импорта) тип импортируемого поля определялся как текстовый, независимо от того, что идет первым, и таким макаром и вносился в таблицу Access?
Можно, конечно, в исходной таблице всегда иметь первой записью что-то вроде АПП-454/66, но наверное существует и другой вариант?
Всем заранее спасибо!
...
Рейтинг: 0 / 0
06.10.2003, 16:30
    #32285347
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля на нужное в процессе импорта
Сам регулярно с этим сталкиваюсь. Возможные решения следующие:\r
1. Как ты сам уже написал, добавлять первую строку с соотв. данными - если надо по быстрому перекинуть, то я иногда и сам так делаю :)\r
2. Переделать программно/вручную таблицу после импорта (с конвертацией всего что в них)\r
3. Отказаться от xls файла -> сохранить как txt с табуляцией и воспользоваться: DoCmd.TransferText acImportDelim, "MyImport", NameTable, FileToOpen\r
\r
Вариант 3 наиболее гибкий, но к сожалению и к DoCmd.TransferText тоже есть некоторые претензии, которые выражаются в том, что при несовпадении импортируемых данных с типом поля Access будет выдаст в итог предупреждающее сообщение (можно программно подавить) и создаст таблицу - Ошибки импорта (никак нельзя отменить). Потом конечно ее можно программно удалить, алгоритм задавания имени этой таблицы простой, после импорта можно ее просто найти и удалить, чтобы не болталась.\r
\r
4 Как вариант, я сейчас дорабатываю классную функцию Владимир Саныча, которая является аналогом DoCmd.TransferText, только тут уже ты сам хозяин барин, вот ссылка где меня Саныч отбрадовал этой функцией: /topic/47857&hl=
...
Рейтинг: 0 / 0
06.10.2003, 21:34
    #32285635
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа поля на нужное в процессе импорта
Та функция предназначена для текстовых файлов. А для Ёкселя есть другой способ:\r
\r
/topic/28481
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение типа поля на нужное в процессе импорта / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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