Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Экспорт денежного поля в формат CSV  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5209
Экспортирую запрос в текстовый файл
DoCmd.TransferText acExportDelim, "Modify1", "ProductMod", "c:\Users\User\Documents\Задача\OutProducts.csv", True, , 1251

Разделители поборол. Но в запросе есть денежное поле. И оно экспортируется с обозначением валюты. Как убрать это обозначение?

115515;0;220,00 ?;"Электронные сигареты Elf Bar Grape (Виноград) 1500 | 2%"

Второе поле. Там где вопрос, там знак рубля. Как убрать ЭТО?
-------------------------------------------------------------
Мы рождены чтоб сказки сделать былью! Даже самые страшные...
20 ноя 21, 18:59    [22398388]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21483
По-моему, ты занимаешься ненужным делом. Импортируй во временную таблицу, всю строку в одно поле, а потом запросом распарси в рабочую таблицу.
20 ноя 21, 20:17    [22398428]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Лапух
Member

Откуда: Стойбище № 7
Сообщений: 1195
Akina
а потом запросом распарси

А по моему ты еврей.
По русски не умеешь сказать?
ЧЁ такое - ПАРСИ?
20 ноя 21, 21:40    [22398465]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Swa111
Member

Откуда:
Сообщений: 241
Joss,

Если других вариантов не будет

экспортировать в формате UTF-16. Через FSO открыть файл, заменой убрать символ рубля, сохранить в кодировке 1251
21 ноя 21, 06:29    [22398525]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
aleks222
Member

Откуда:
Сообщений: 1839
Joss

Разделители поборол. Но в запросе есть денежное поле. И оно экспортируется с обозначением валюты. Как убрать это обозначение?
Второе поле. Там где вопрос, там знак рубля. Как убрать ЭТО?

Освой запросы и преобразование типов.
21 ноя 21, 11:02    [22398557]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21483
Лапух
А по моему ты еврей.
По русски не умеешь сказать?
ЧЁ такое - ПАРСИ?

Опачка... ну ежли у тебя есть в загашнике - так поделись русским термином, чтобы в одно слово и с полным сохранением смысла.
21 ноя 21, 20:52    [22398784]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5209
Поясняю, как решил проблему.
Сначала попробовал поиграться с функцией Format() но получился облом. Результатом работы функции является символьная строка, а при импорте методом DoCmd.TransferText Символьная строка берётся в двойные кавычки ("). Убрать их в шаблоне нельзя, так как в информации есть и символьные значения (название товара)

Пример

 115515;0;"220,00";"Электронные сигареты Elf Bar Grape (Виноград) 1500 | 2%"

Тогда я сделал "финт ушами". Сначала при помощи функции Format() получил символьное значение, а потом при помощи функции Val() числовое. Может не оптимально и что-то потом всплывёт. Но сейчас работает

Пример

 115515;0;220,00;"Электронные сигареты Elf Bar Grape (Виноград) 1500 | 2%"
22 ноя 21, 17:10    [22399225]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Joss
Тогда я сделал "финт ушами". Сначала при помощи функции Format() получил символьное значение, а потом при помощи функции Val() числовое. Может не оптимально и что-то потом всплывёт. Но сейчас работает
есть функции преобразования типов, твоя CDbl

лучше не ушами финт делать. а тем что между ними.

Сообщение было отредактировано: 22 ноя 21, 18:11
22 ноя 21, 18:08    [22399280]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5209
Панург
...
лучше не ушами финт делать. а тем что между ними.

А между ними - бестолковка.

Попробую.
22 ноя 21, 18:30    [22399297]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Панург
есть функции преобразования типов, твоя CDbl


так он пишет в текстовый файл, можно сразу и в CStr()
Странно...
Я думал это будет последнее сообщение тут:

aleks222
Освой запросы и преобразование типов.


- делаешь на таблице запрос
- преобразуешь функциями кривые поля
- потом запрос отправляешь в TransferText
22 ноя 21, 19:57    [22399342]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
vmag
...так он пишет в текстовый файл, можно сразу и в CStr()...
По стандарту данные текстового поля обрамляются кавычками в csv.
22 ноя 21, 20:06    [22399350]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
vmag
aleks222
Освой запросы и преобразование типов.

До Штирлица не дошло письмо из центра. Он его еще раз перечитал, но все равно не дошло. (с) анегдод
22 ноя 21, 20:10    [22399357]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Панург,

ну да, наверно, ты прав... глобально,
правда у него вместо 220,00 и 220,50 прилетят 220 и 220,5 в файл соответственно, а это всё-таки Joss...
небольшой непорядок, думаю это его и смутило...
22 ноя 21, 20:14    [22399362]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
galalex
Member

Откуда:
Сообщений: 6
Используйте для чтения текстовых файлов создание ADO.Recordset через Microsoft Text ODBC Driver. Драйвер позволяет настроить все нюансы текстового файла в файле schema.ini. Прелесть решения в том, что вы получите набор записей с преобразованными к нужному типу значениями, в том числе драйвер уберёт символ валюты (где бы он не находился), вернув число денежного типа.
Строка подключения ADO:
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\Users\User\Documents\Задача\;Extensions=asc,csv,tab,txt
Обратите внимание, что Dbq указывает папку с текстовым файлом (не файл - файл указывается в тексте запроса), в которой должен располагаться schema.ini со следующей секцией:
[OutProducts.csv]
Format=Delimited(;)
ColNameHeader=True
MaxScanRows=0
Col1="sku" Text
Col2="qty" Long
Col3="price" Currency
Col4="name" Text
CharacterSet=ANSI
DecimalSymbol=,
NumberDigits=2
NumberLeadingZeros=True
CurrencySymbol=р
CurrencyPosFormat=1 р
CurrencyDigits=2
CurrencyDecimalSymbol=,
Некоторые строки избыточны в вашем случае, привёл для пользы другим. В CurrencyPosFormat указывается положение символа валюты. Допускаются варианты (без кавычек) "р1", "р 1", "1р", "1 р", где р - символ или строка валюты, указанный в CurrencySymbol.
Вполне вероятно, что аналогично отработает поставщик Microsoft Jet OLE DB 4.0. Строка подключения для него:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Users\User\Documents\Задача\;Extended Properties="text;HDR=Yes;FMT=Delimited";
Более подробные сведения:
Textfile connection strings
Schema.ini File (Text File Driver)
Much ADO About Text Files
25 ноя 21, 08:32    [22400487]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт денежного поля в формат CSV  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
galalex
Используйте для чтения
вроде речь за экспорт? Кто уж там будет читать дело десятое.
25 ноя 21, 10:32    [22400541]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить