Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразование строки при импорте... / 23 сообщений из 23, страница 1 из 1
21.05.2004, 15:14
    #32528394
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Всем привет. Access'2000 *.mdb

Столкнулся с такой проблемой:
Экспортирую содержимое таблицы в текстовый файл. В этой таблице есть поле, которое имеет тип "С плавающей точкой (4 байт)".

В текстовый файл выгружается все правильно!

Потом я импортирую этот текстовый файл в копию первой таблицы с другим именем и получаю в поле "С плавающей точкой (4 байт)" какой-то бред.

Например: если в поле было "12", то в текстовом файле "12,00", а после импорта получаю "0,5".
Если было "19", то после експорта/импорта получаю "0,7916667".
В таблице есть числа "29" и "45", так при импорте Access вообще ругается: "Ошибки импотра" - говорит и в таблице пустые строчки.

Для импорта и экспорта использую DoCmd.TransferText с разделителями (;).


Может кто сталкивался с таким. Поможите... а?
...
Рейтинг: 0 / 0
21.05.2004, 15:17
    #32528404
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
В спецификации импорта и в таблице тип этого поля совпадает?
...
Рейтинг: 0 / 0
21.05.2004, 15:18
    #32528408
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
12,00 = 0,5

Такое осчусчение, что Импорт ваше поле за время принял

Может ему стоит тип поля более конкретно указывать? (при Импрорте)
...
Рейтинг: 0 / 0
21.05.2004, 15:25
    #32528434
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Что интересно, если импортировать при помощи мастера, то все получается.

ВС: в хелпе написано, что если использовать експорт/импорт с разделителем, то спецификацию можно не указывать, вот я и не указываю.

paparome:
автор Может ему стоит тип поля более конкретно указывать? (при Импрорте)

А как это сделать?

Я пишу:
Код: plaintext
DoCmd.TransferText acImportDelim, , "GAS_S_MOD_пром", AllPath, True

Может я где-то напортачил.
Ведь в 97 Accesse все это работало нормально...
...
Рейтинг: 0 / 0
21.05.2004, 16:57
    #32528720
Преобразование строки при импорте...
авторВС: в хелпе написано, что если использовать експорт/импорт с разделителем, то спецификацию можно не указывать, вот я и не указываю.

А вот и зря... :))
Создайте спецификацию и укажите ее имя в DoCmd.TransferText

Может лучше отказаться от TransferText и выполнять импорт процедурой, используя Open#, LineInput# ..., или библиотеку FSO?
...
Рейтинг: 0 / 0
24.05.2004, 09:32
    #32529969
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Действительно. Если выгружать пустой файл, то Access создает файл "export.ini". В нем прописываются типы полей таблицы. С этим файлом все импортируется правильно.

Но этот файл создается автоматически только если таблица пустая.

Так вот, как сказал Владимир Саныч: "...извените за глупый вопрос...".

Подскажите, как создается спецификация, где она хранится.
...
Рейтинг: 0 / 0
24.05.2004, 09:42
    #32529985
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Хранится в таблицах
MSysIMEXSpecs
MSysIMEXColumns
Создается - при начале импорта у мастера ниже есть кнопочка "Дополнительно"
...
Рейтинг: 0 / 0
24.05.2004, 09:49
    #32530005
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
To Alexander G:

Прошу пояснить:

Если я один раз при помощи мастера создам спецификацию, то эта спецификация там так и останется? Если нет, то каким образом ее програмно создавать?
Дело а том, что я при импорте\експорте мастер не использую.
...
Рейтинг: 0 / 0
24.05.2004, 09:57
    #32530028
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Если там, где "Дополнительно" нажать - Сохранить как, то она будет сохранена в упомянутых таблицах и ее можно использовать.
...
Рейтинг: 0 / 0
24.05.2004, 09:58
    #32530034
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Как я уже понял, то скорее всего спецификация остается.
И закачивается все правильно.

Большое всем спасибо за помощь...
...
Рейтинг: 0 / 0
24.05.2004, 10:03
    #32530042
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Товарищи модераторы -:))

Может имеет смысл поместить содежимое сего топика в FAQ.
А то в Help'e написано одно, а в жизни вон оно как... не сразу и догадаешься...
...
Рейтинг: 0 / 0
24.05.2004, 13:06
    #32530536
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Dafкак сказал Владимир Саныч: "...извените за глупый вопрос..."
Я никогда не говорю "извените". :^)
...
Рейтинг: 0 / 0
24.05.2004, 13:12
    #32530552
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Саныч прости... не правильно процетировал.
...
Рейтинг: 0 / 0
24.05.2004, 13:16
    #32530563
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
:^)
...
Рейтинг: 0 / 0
24.05.2004, 16:17
    #32531031
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Благодаря спецификации мне удалось "проще" решить проблему кодировки выгружаемых данных. Т.е. Access 97 выгружает данные в текстовый файл в кодировке 866, а Access'2000 и 'XP выгружают в 1251 и соответственно пытаются загрузить в своей кодировке.

Чтобы этими файлами можно было пользоваться и в 97 и 2000 и XP я использую кодировку 866, т.к. в 97 нельзя задавать кодировку импортируемых\экспортируемых файлов.

Приходилось для Access'2000 и XP писать свои куски программы.

А если использовать спецификацию, то код остается один для всех версий.
...
Рейтинг: 0 / 0
24.05.2004, 16:25
    #32531058
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Походу возник еще один вопрос. Если я гружу данные из файла в таблицу, где есть поле "ID" c типом "Счетчик", то появляется таблица "xxx_ImportErrors".
В текстовом файле этого поля нет (это же счетчик).

В таблицу "xxx_ImportErrors" он фигачит записи о том, что у меня поля "ID" -"Null value in an auto-number field", но в таблице, куда я импортирую файл счетчик исправно работает, т.е. все ОК.

Вопрос:
как избежать появления таблицы "xxx_ImportErrors".
...
Рейтинг: 0 / 0
25.05.2004, 10:03
    #32531711
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Немного поясню.

До применения спецификации таблица с ошибками импорта не появлялась,
а сейчас появляется.

Можно как нибудь это обойти? Каждый раз после импорта не хотелось бы удалять эти таблицы...
...
Рейтинг: 0 / 0
25.05.2004, 10:35
    #32531795
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Вопрос решил.

Я создал спецификацию экспорта и использовал ее для импорта и экспорта.

В спецификацию экспорта заносятся данные о полях. Одно из полей было "счетчик", а текстовом файле такого поля естественно нет.


Для импорта нужно создавать спецификацию импорта с того файла, который импортируешь.
...
Рейтинг: 0 / 0
25.05.2004, 12:35
    #32532165
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Да. Телепаты медленно соображали...
...
Рейтинг: 0 / 0
25.05.2004, 12:52
    #32532226
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
:-))
...
Рейтинг: 0 / 0
26.05.2004, 10:07
    #32533858
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Решил отдельно сделать спецификации для експорта/импорта и столкнулся с проблемой.

При экспорте одной из таблиц через запрос:

Код: plaintext
DoCmd.TransferText acExportDelim, "НГПА_02 - спецификация экспорта", "Export НГПА_02", F2_txt, True

Появляется сообшние об ошибке '3438'.

Получается, что типы даных, который выводит запрос, не совпадают с типом данных, указаных в спецификации? Так что ли?

И где находится этот файл Schema.ini?

У меня такого на диске компьютера нет.
...
Рейтинг: 0 / 0
26.05.2004, 10:51
    #32533961
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
1. Похоже не совпадают
2.Не надо верить этому. Нету этого файла. Ассеss хранит спецификации в системных таблицах.
Schema.ini для программ на VB.
...
Рейтинг: 0 / 0
26.05.2004, 11:06
    #32533994
Daf
Daf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки при импорте...
Эх совсем торможу.

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


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