|
импорт из .txt
|
|||
---|---|---|---|
#18+
Необходимо импортировать файлы, имеющие txt формат в таблицу базы. Тупо изменение расширения ничего не даёт. Что можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 13:14 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
http://computerplus.com.ua/Krivtsov.htm Скачайте и прочитайте док-файл "Access и текстовые файлы" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 13:17 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Примеры импорта: Создание таблицы (поля - выборочно) из C:\Файл.txt (заголовок указан в спецификации): sCnn2="[Text;DSN=Спецификация импорта;IMEX=2;HDR=No]" "SELECT Поле1, Поле10 INTO Таблица FROM Файл#txt IN 'C:\'" & sCnn2 Пополнение таблицы (поля - выборочно) из C:\Файл.txt (заголовок указывается здесь): sCnn3="[Text;DSN=Спецификация экспорта;IMEX=2;HDR=Yes]" "INSERT INTO Таблица SELECT Поле1,Поле10 FROM Файл#txt IN 'C:\'" & sCnn3 из этого документа. В моём случае таблица для импорта уже есть Пробую: Код: plaintext 1. 2. 3. 4. 5. 6.
Ошибка синтаксиса в выражении From. В чём здесь косяк? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:14 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
точнее: sCnn1 = "[Text;DSN=acImportDelim;IMEX=1;HDR=Yes]" SQL = "Insert into [f103]" _ & " Select *,'" & oFile.name _ & "' AS fileName,'" & sMailType & "' AS MailType,'" _ & sMailCtg & "' AS MailCtg, " & nListNum & " AS ListNum, " & sSendDate & " AS SendDate from " & oFile.name _ & " IN " & sFolderPath & " " & sCnn1 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:18 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sid, распечатайте (debug.print SQL) переменную SQL и покажите ее здесь ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:22 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
вот: Insert into [f103] Select *,'102172.txt' AS fileName,'4' AS MailType,'4' AS MailCtg, 2 AS ListNum, 20110217 AS SendDate from 102172.txt IN C:\Documents and Settings\the_sid\Рабочий стол\Резерв\Новая папка\f103\ [Text;DSN=acImportDelim;IMEX=1;HDR=Yes] ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:34 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sidвот: Insert into [f103] Select *,'102172.txt' AS fileName,'4' AS MailType,'4' AS MailCtg, 2 AS ListNum, 20110217 AS SendDate from 102172.txt IN C:\Documents and Settings\the_sid\Рабочий стол\Резерв\Новая папка\f103\ [Text;DSN=acImportDelim;IMEX=1;HDR=Yes] точка стоит в имени файла и апострофов вокруг пути - нет ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:37 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sid, распечатайте весь модуь Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:45 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, кавычки Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:51 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, уголков конечно не надр ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:52 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
поправил, теперь ругается: Файл "не может быть открыт ядром базы Microsoft Jet".Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:54 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sidпоправил, теперь ругается: Файл "не может быть открыт ядром базы Microsoft Jet".Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных ну так закрой его ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 15:59 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
я его и не открывал ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 16:01 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sidвот: Insert into [f103] Select *,'102172.txt' AS fileName,'4' AS MailType,'4' AS MailCtg, 2 AS ListNum, 20110217 AS SendDate from 102172.txt IN C:\Documents and Settings\the_sid\Рабочий стол\Резерв\Новая папка\f103\ [Text;DSN=acImportDelim;IMEX=1;HDR=Yes] Вместо from 102172.txt надо from 102172#txt или from [102172.txt] Про апостофы вокруг пути вам сказали. И что такое DSN=acImportDelim? Должно быть DSN=ИмяСпецификации, а acImportDelim - это из другой оперы (DoCmd.TransferText). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 16:01 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )the_sidвот: Insert into [f103] Select *,'102172.txt' AS fileName,'4' AS MailType,'4' AS MailCtg, 2 AS ListNum, 20110217 AS SendDate from 102172.txt IN C:\Documents and Settings\the_sid\Рабочий стол\Резерв\Новая папка\f103\ [Text;DSN=acImportDelim;IMEX=1;HDR=Yes] Вместо from 102172.txt надо from 102172#txt или from [102172.txt] Про апостофы вокруг пути вам сказали. И что такое DSN=acImportDelim? Должно быть DSN=ИмяСпецификации, а acImportDelim - это из другой оперы (DoCmd.TransferText). поправил, далее ругается: Инструкция Insert содержит неизвестное имя поля 'Barcode|Mass|MassRate|Payment|Value|InsrRate|AirRate|IndexTo|Region|Area|City|MailDirect|AlterDeliv|TelAddress' Поле это является первой строкой импортируемого файла, который имеет вид: Barcode|Mass|MassRate|Payment|Value|InsrRate|AirRate|IndexTo|Region|Area|City|MailDirect|AlterDeliv|TelAddress 14080835548147|1480|14160|0|89800|3592|0|196240|‘ЂЌЉ’-Џ…’…ђЃ“ђѓ||‘ЂЌЉ’-Џ…’…ђЃ“ђѓ|643|0| 14080835548154|1550|14630|0|99800|3992|0|117485|||ЊЋ‘Љ‚Ђ|643|0| 14080835548161|1550|17170|0|99800|3992|0|662971|ЉђЂ‘ЌЋџђ‘Љ€‰ Љђ.||†…‹…‡ЌЋѓЋђ‘Љ|643|0| 14080835548178|1550|15210|0|99800|3992|0|355000|‘’Ђ‚ђЋЏЋ‹њ‘Љ€‰ Љђ.||‘’Ђ‚ђЋЏЋ‹њ|643|0| 14080835548185|1550|15210|0|99800|3992|0|194223|||‘ЂЌЉ’-Џ…’…ђЃ“ђѓ|643|0| .......... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 16:11 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
неужели вручную придётся закидывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 16:18 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sidпоправил, далее ругается: "Поправил"==создал сиситемный/пользоветельский DSN и указал его в парамтерах подключения для запроса ? Если да, - то поправить в этом DSN параметр "Разделитель". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 16:26 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
СавсемГостьthe_sidпоправил, далее ругается: "Поправил"==создал сиситемный/пользоветельский DSN и указал его в парамтерах подключения для запроса ? Если да, - то поправить в этом DSN параметр "Разделитель". "поправил" - просто не указал этот параметр. Сейчас создал системный DSN с именем "MyDSN" Прописываю так "[Text;DSN=MyDSN;IMEX=1;HDR=Yes]" Пишет что не знает такой спецификации ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 16:49 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sid, Код: plaintext 1. 2. 3. 4. 5. 6.
в папке sFolderPath создать текстовый файл с именем schema.ini следующего содержания Код: plaintext 1. 2. 3.
В примере указана кодировка ANSI. Вам надо указать ту, в которой сохранен Ваш файл, иначе получите кракозябры, как в Вашем посте PS: если файлов для импорта несколько, - schema.ini заполнять программно перед импортом. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 16:50 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
большое спасибо, заработало. Только проблемка перед импортом выскакивает предупреждения о том сколько записей добавить. У меня не один файл импортируется, так что это беда. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 17:05 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Попробуйте віполнить импорт вручную (через меню). При этом вам будет предложено настроить спецификацию, в которой нужно (кроме всего прочего) указать разделитель полей "|". Сохраните ее под каким-то именем и в дальнейшем указывайте его в команде DoCmd.TransferText или в строке подключения запроса (DSN=ИмяСпецификации). СавсемГость, вы путаете DSN для ODBC драйвера и DSN в Access в строке подключения к текстовому файлу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 17:05 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sidбольшое спасибо, заработало. Только проблемка перед импортом выскакивает предупреждения о том сколько записей добавить. У меня не один файл импортируется, так что это беда. Видимо вы используете метод DoCmd.RunSQL. Вместо него выполняйте CurrentDB.Execute. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 17:15 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )СавсемГость, вы путаете DSN для ODBC...Действительно. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 17:15 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Попробуйте віполнить импорт вручную (через меню). При этом вам будет предложено настроить спецификацию, в которой нужно (кроме всего прочего) указать разделитель полей "|". Сохраните ее под каким-то именем и в дальнейшем указывайте его в команде DoCmd.TransferText или в строке подключения запроса (DSN=ИмяСпецификации). СавсемГость, вы путаете DSN для ODBC драйвера и DSN в Access в строке подключения к текстовому файлу. Попробовал сохранить спецификацию. Проприсал её имя. Но ругается что не знает такой. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 17:42 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
the_sid, тоже пробовал "поиграться" со спецификацией импорта. Похоже, Акцесс не просматривает сохраненные спецификации импорта при таком формате запроса Код: plaintext
Вместо того, чтобы для каждого импортируемого файла создавать раздел Код: plaintext 1.
Код: plaintext
Можно для группы файлов со сходными параметрами (кодировка, наличие строки с именами полей, разделитель) создать одну спецификацию и указывать её в строке подключения, например: Код: plaintext 1. 2. 3. 4. 5. 6.
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 18:45 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
СавсемГостьthe_sid, тоже пробовал "поиграться" со спецификацией импорта. Похоже, Акцесс не просматривает сохраненные спецификации импорта при таком формате запроса Код: plaintext
Отрывок из статьи по ссылкеЗапросы, использующие спецификацию Access, имеют в строке подключения следующие обязательные параметры: DSN=ИмяСпецификации - имя созданной ранее и сохраненной спецификации; IMEX=2 (чтение/запись в файл) или IMEX=1 (только чтение из файла); HDR=No - при чтении из файла (наличие заголовка указывается в спецификации, если здесь указать HDR=Yes, то потеряете 1-ю запись). При экспорте этот параметр учитывается и должен быть указан правильно. Внимание! Если вы забыли указать параметр IMEX, то при выполнении запроса получите сообщение: "Спецификация текстового файла <имя> не существует. Невозможен импорт, экспорт или присоединение с помощью этой спецификации." !? СавсемГостьЗато нашел куда "втыкнуть" это {ImportSpec}, - всё в тот-же schema.ini Можно для группы файлов со сходными параметрами (кодировка, наличие строки с именами полей, разделитель) создать одну спецификацию и указывать её в строке подключения, например: Код: plaintext 1. 2. 3. 4. 5. 6.
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 19:24 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), по порядку: 1) без IMEX (да и без DSN) в строке импорта из .txt файла нормально отрабатывает. Перед тем, как запостить проверил. 2) "Заголовок_Разделитель|" всего лишь название спецификации, | в пример втыклул "для наглядности". В принципе название спецификации может быть любым (с символами '#$@\/ не проверял). Вся "соль" в задании параметра Format=Delimited(|) ЗЫ: "нашел" когда Акцесс использует свои сохраненные спецификации импорта Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 19:45 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), Внимание! Если вы забыли указать параметр IMEX, то при выполнении запроса получите сообщение: "Спецификация текстового файла <имя> не существует. Невозможен импорт, экспорт или присоединение с помощью этой спецификации." !? Век живи, - век учись. Действиетльно, с указанием IMEX Акс читает параметры импорта из своей сохраненной спецификации... А мужики-то и не знают!(с) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 19:52 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Всем большое спасибо! Задача выполнена. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2011, 09:51 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
СавсемГость the_sid, Код: vbnet 1. 2. 3. 4. 5. 6. 7.
в папке sFolderPath создать текстовый файл с именем schema.ini следующего содержания Код: plaintext 1. 2. 3.
В примере указана кодировка ANSI. Вам надо указать ту, в которой сохранен Ваш файл, иначе получите кракозябры, как в Вашем посте PS: если файлов для импорта несколько, - schema.ini заполнять программно перед импортом. Поскажите как быть с экспортом Код: vbnet 1.
Вадает Сообщение что спецификация текстового файла не существует. А сохраненый экспорт есть и выполняется. Я так понимаю ее програмно надо собирать а как постотреть если так то как посмотреть какая спецификация используется при сохраненом экспорте ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 18:59 |
|
импорт из .txt
|
|||
---|---|---|---|
#18+
Возникла такая проблема - надо прочитать .txt файл такого типа Код;Группа;Наименование;Описание;Папка;Производитель;Ед;Вид;Артикул 00-00000007;Абразивные материалы;Карпич (тест);Кирпич обыкновенный;Нет;;шт;Материалы вспомогательные;Арт 0001 и занести данные в таблицу Акса Прочитав этот топик- импортировать получается и так Код: vbnet 1.
и так Код: vbnet 1. 2.
Но - только если сделать разделитель в файле .txt - запятая. Можно ли как-нибудь при импорте задать разделитель? или всегда только системный используется? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 07:42 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1610050]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 574ms |
0 / 0 |