powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Microsoft Jet заливка в текст с ДРУГИМ расширением
10 сообщений из 10, страница 1 из 1
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40029298
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня господа !

Осуществляю выгрузку данных в текстовый файл
Архитектурно такая выгрузка идет через ADOConnection

Имею cтроку коннекта
Код: vbnet
1.
2.
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\WORK\;Extended Properties="text;HDR=YES;FMT=Delimited""
"select * into [строка коннекта для текста].[schema.txt]  from {Table}"



Хочу писать так
"select * into [строка коннекта для текста].[schema. ini ] from {Table}"

Зачем это нужно
- экспорт данных в файл с динамическим названием = аа20201219.txt aa20201220.txt и т.д.
- необходимо поддерживать исходные данные о структуре и настройках файла в SCHEMA.INI
- это поддержание делаю запросом на вставку в SCHEMA.INI
insert into [строка коннекта для текста].[schema.INI] values ("[аа20201219.txt]" + Chr(13)+Chr(10)+TextDelimiter=none+Chr(13)+Chr(10).....")
- далее идет основной этап выгрузки данных уже при наличии описанного [аа20201219.txt]
select * into [text;HDR=YES;FMT=Delimited;Database=C:\WORK\].[aa20202019.txt] from {Table}

Возник вопрос - Mjet работает только с файлами которые имеют расширение ASC,TXT,TAB,CSV
Т.е. файл по сути текстовый, но имеет другое расширение - это ошибка
так можно = insert into [строка коннекта для текста].[schema.txt] values ("............")
так нельзя = insert into [строка коннекта для текста].[schema.INI] values ("............")

Приходиться делать так
insert into [строка коннекта для текста].[schema.txt] values ("............")
Потом кодом VBA переименовывать schema.txt -> schema.ini

Архитектурно - заморочка и ненужный этап и НЕКРАСИВЕНЬКО как-то
Не верю, что MJet может работать только с расширениями ASC,TXT,TAB,CSV
Пробывал менять в реестре значение Extentions =ASC,TXT,TAB,CSV,INI без результатов

Может кто-то сталкивался, подскажите пожалуйста
Спасибо
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40029311
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Вопрос снят спасибо
Код: vbnet
1.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Text\DisabledExtensions=!txt,csv,tab,asc,tmp,htm,html,log,ini



Код: vbnet
1.
2.
3.
4.
5.
create table [TEXT;HDR=NO;FMT=Delimited;DATABASE={Item}].[Schema.txt] (F1 Char(255));  - txt это не ошибка в этот момент создается SCHEMA.INI
Insert  into [TEXT;HDR=NO;FMT=Delimited;DATABASE={Item}].[Schema.ini]
values (Chr(13)+Chr(10)+'[Np_{Year}{Month}{Dau}.CSV]'+Chr(13)+Chr(10)+'ColNameHeader=False'+Chr(13)+Chr(10)+'CharacterSet=1251'+Chr(13)+Chr(10)+'Format=Delimited(,)'+Chr(13)+Chr(10)+'TextDelimiter=none'+Chr(13)+Chr(10)+'');
Insert  into [TEXT;HDR=NO;FMT=Delimited;DATABASE={Item}].[Schema.ini]
values (Chr(13)+Chr(10)+'[Np_{Year}{Month}{Dau}.CSV]'+Chr(13)+Chr(10)+'ColNameHeader=False'+Chr(13)+Chr(10)+'CharacterSet=1251'+Chr(13)+Chr(10)+'Format=Delimited(,)'+Chr(13)+Chr(10)+'TextDelimiter=none'+Chr(13)+Chr(10)+'');
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40029724
HOME_X, ваше решение, это "НЕКРАСИВЕНЬКО как-то" в квадрате.
Корректировка реестра - крайняя мера. Это работает только на конкретном компе, а в вашем случае, и под конкретным офисом.
Проще было заточить экспорт под левое имя файла (например Temp.txt), а затем полученный файл переименовывать.

Но есть и более элегантное (и мaлоизвестное) решение при условии, что экспорт выполняется не из Access.
Если в нужной папке создать файл schema.ini с разделом, например, "ИмяСекции", то ее можно использовать качестве DSN при экспорте/импорте любых однотипных файлов из(в) этой папки, для чего в строке подключения запроса (или в св-ве "Extended Properties" создаваемого ADODB.Connection, или при вызове метода OpenDatabase (DAO)) указать "Text;DSN=ИмяСекции".
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40029906
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий

Но есть и более элегантное (и мaлоизвестное) решение при условии, что экспорт выполняется не из Access.
Если в нужной папке создать файл schema.ini с разделом, например, "ИмяСекции", то ее можно использовать качестве DSN при экспорте/импорте любых однотипных файлов из(в) этой папки, для чего в строке подключения запроса (или в св-ве "Extended Properties" создаваемого ADODB.Connection, или при вызове метода OpenDatabase (DAO)) указать "Text;DSN=ИмяСекции".


Переименовывать не интересно !

Access как Оболочка не используется
Используется Microsoft Jet как повайдер и Excel как исходный формат данных

Не совсем Вас понял - прошу уточнить второй вариант
Файл Schenma.ini лежит в C:\WORK
------------------------------------------------------------
[Np{YY}{MM}{DD}.CSV] - {YY}{MM}{DD} дата отчета ДОЛЖНА меняется

[Np201209.CSV]
ColNameHeader=False
CharacterSet=1251
Format=Delimited(,)
TextDelimiter=none

[EXAMPLE.CSV]
ColNameHeader=False
CharacterSet=1251
Format=Delimited(,)
TextDelimiter=none

------------------------------------------------------------
select * into [TEXT;HDR=NO;FMT=Delimited;DATABASE=C:\WORK].[Np201209.CSV] from [EXCEL].[MAIN_TABLE in Excel ]


Как писать в моем случае ?
------------------------------------------------------------
select * into [TEXT;HDR=NO;FMT=Delimited;DNS=C:\WORK\EXAMPLE.CSV].[Np201225.CSV] from [EXCEL].[MAIN_TABLE in Excel ]


Спасибо !
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40030049
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Писать так - просто добавить параметр DSN

[EXAMPLE]
ColNameHeader=False
CharacterSet=1251
Format=Delimited(,)
TextDelimiter=none

------------------------------------------------------------
select * into [TEXT;HDR=NO;FMT=Delimited;DATABASE=C:\WORK;DSN=EXAMPLE].[Np201209.CSV] from [EXCEL].[MAIN_TABLE in Excel]

Np201209.CSV - динамическое название

Это хорошее решение - спасибо ВАМ !!!!!!!

В Help-е таки нашел ссылку
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40030066
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

После работы оставляет EXPORT.INI -- ну так для между прочим
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40030735
HOME_X
В Help-е таки нашел ссылку

А можно ссылку на тот Help, где вы это нашли? Я ни в каком Help-е подобного не видел и нашел опытным путём, как, кстати, и про TextDelimiter=none.
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40030976
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий,

https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/initializing-the-text-data-source-driver

Код: java
1.
2.
3.
TextDelimiter

Can be set to any single character that is used to delimit strings that contain any of the other special characters. E.g. "abc","xyz,pqr","hij" If this entry is not present the default delimiter is a double quote. If this entry is the string "none" then no characters will be treated as delimiters.
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40031298
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий,

Вы по Visual Basic в разделе WIN API не сильны ?
SendInput для 64 bit подсказать не сможите
...
Рейтинг: 0 / 0
Microsoft Jet заливка в текст с ДРУГИМ расширением
    #40031527
HOME_X

Вы по Visual Basic в разделе WIN API не сильны ?
SendInput для 64 bit подсказать не сможите
Эту функцию никогда не использовал - не было необходимости. Вы лучше опишите задачу - что за набор символов и куда посылаете,
У вас 64 винда или офис? Что не получается?

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


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