Страницы: 1
RSS
ACCESS. Замена точки на запятую.
 
Добрый день, Уважаемые формучане и макромчане.  
Может кто сталкивался, как поменять точку на запятую прямо в ACCESS_е и не абы везде, а в определенных столбцах (полях). Региональные настройки менять не нужно. Странно, но либо это невозможно, либо плохо искал, т.к. поиск в инете ничего продуктивного не дал. Может ссылочка на статейку какую у кого есть? Спасибо.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Обычным порядком - выделить поле, CTRL+H,с любой частью поля, "." на ","... ;)-18837-
 
Делаю так каждый день в конечном, Excel_вском файле. Надоело..  
:)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, в Access необходимо использовать запросы:  
Update t set t.F1=Replace([F1],",",".")
t-имя таблицы, F1-имя поля  
Но помните, что формат поля останеться неизменным
Спасибо
 
Только в моем примере наоборот меняется запятая на точку :)
Спасибо
 
R Dmitry, как к моему, уже существующему запросу добавить Ваш?  
 
SELECT LX_min.Поле2 AS Код, LX_min.Поле3 AS Аналог, LX_min.Поле4 AS Номенклатура, LX_min.Поле5 AS Мин_LX, SL_min.Поле5 AS Мин_SL, LX_min.Поле6 AS Склад_LX, SL_min.Поле6 AS Склад_SL, LX_min.Поле7 AS Закупочная, LX_min.Поле8 AS Розничная  
FROM LX_min INNER JOIN SL_min ON LX_min.Поле2 = SL_min.Поле2  
WHERE (((LX_min.Поле5)>"0")) OR (((SL_min.Поле5)>"0")) OR (((LX_min.Поле6)>"0")) OR (((SL_min.Поле6)>"0"))  
ORDER BY LX_min.Поле4;  
 
----------  
Мне нужно в Поле7 и Поле8 заменить точку на запятую, чтобы в Экселе уже сразу шли расчеты.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
........Replace(LX_min.Поле7,".",",") as Закупочная,Replace(LX_min.Поле8,".",",") as Розничная  
..........
Спасибо
 
Владимир в access эти поля числа или текст?
Спасибо
 
Это всё текст. Из 1С импортирую текстовой файл в Ассеss.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Тогда попройте просто преобразовать с помощью Val(LX_min.Поле7) as ....  
иначе вы опять получите текст
Спасибо
 
{quote}{login=Владимир}{date=30.03.2012 11:10}{thema=}{post}R Dmitry, как к моему, уже существующему запросу добавить Ваш?  
 
SELECT LX_min.Поле2 AS Код, LX_min.Поле3 AS Аналог, LX_min.Поле4 AS Номенклатура, LX_min.Поле5 AS Мин_LX, SL_min.Поле5 AS Мин_SL, LX_min.Поле6 AS Склад_LX, SL_min.Поле6 AS Склад_SL, LX_min.Поле7 AS Закупочная, LX_min.Поле8 AS Розничная  
FROM LX_min INNER JOIN SL_min ON LX_min.Поле2 = SL_min.Поле2  
WHERE (((LX_min.Поле5)>"0")) OR (((SL_min.Поле5)>"0")) OR (((LX_min.Поле6)>"0")) OR (((SL_min.Поле6)>"0"))  
ORDER BY LX_min.Поле4;  
 
----------  
Мне нужно в Поле7 и Поле8 заменить точку на запятую, чтобы в Экселе уже сразу шли расчеты.{/post}{/quote}  
Попробуйте в запросе заменить LX_min.Поле6 и LX_min.Поле5 на ф-ции    
CCur(LX_min.Поле6) b CCur(LX_min.Поле5) - это поможет выводить числа  в запросе. Но дучше бы и в таблице хранить числа - это надо в процедуре импорта шаманить или после ее
 
Кажется у меня дров нет:  
 
Обновление данных в присоединенной (или связанной) таблице не поддерживается данным драйвером ISAM. (Ошибка 3616)  
Используемый устанавливаемый драйвер ISAM не поддерживает обновление записей во внешних таблицах. Однако разрешается добавление записей.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
To nicks:  
#Ошибка пишет.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
А мой совет не помог?
Спасибо
 
{quote}{login=R Dmitry}{date=30.03.2012 11:16}{thema=}{post}........Replace(LX_min.Поле7,".",",") as Закупочная,Replace(LX_min.Поле8,".",",") as Розничная  
..........{/post}{/quote}  
 
В Accesse показались запятые, но Эксель не принял такой файл, т.к. драйвера такого нет. Пишет ".. неопределенная функция Replace"
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Вы запрос с преобразованием полей оставьте в access, а импортируйте в excel готовый запрос с преобразованными полями
Спасибо
 
R Dmitry, Val(LX_min.Поле7) - та же проблема драйвера. Самое интересное, что в Акцессе пишется "числовой" вместо цифр, а когда встаешь на поле, то и сама цифра появляется.  
 
Ну что ж, буду драйвер искать.  
 
Спасибо, Дмитрий.  
Спасибо, nicks.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Ну если это присоединенная(подлинкованная) текстовая таблица то все может решиться просто. Надо удалить эту таблицу, потом опять же ее выбрать ,выбрать разделитель или самому разбить по полям как надо. И в десятичном раздерилителе поставить точку. Потом открывать эту табличку по двойному клику. Если запятая появляется то все ОК. А с ошибкой подозрение вызывает то что другие поля выровнены в право а эти в лево - есть мысль что там пробелы - надо еще их убрать типа ccur(Trim(XXX))/ Отработано на 2003 Access/
 
Разделитель стоит запятая.  
 
Попробовал при присоединении поставить "Целое" на поля, где требуется число, вышла везде #ошибка.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
можно сделать так  
1) перекинуть весь запрос во временную таблицу  
"select * into temp from my_query;"  
2) добавить столбец с нужными значениями (либо сделать update как написал R Dmitry)  
"Alter Table temp Add Column value double;"  
"Update temp set temp.value = temp.F1*1  
3) выгрузить все это в эксель  
SELECT temp.* INTO [Excel 8.0;Database=C:\book.xls].[new list]FROM temp
 
Можно процедуру написать, и запускать все это из excel  
№11199№
 
Кстати попробуйте просто умножить на 1 в запросе. Помнится у меня такое срабатывало.
 
Не логинюсь для быстроты - вот и надо там точку поставить и формат пола выбрать либо Одинарное с плавающей точкой либо двойное
 
*1 - Это я в первую очередь пробовал.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Блин, дурья башка.. :))    
Собака-то в "двойное с плавающей точкой" порылась.  
 
Nicks, всё заработало. Спасибо большое.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
Страницы: 1
Читают тему
Наверх