Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

¿como cambio ¥ por Ñ?

90 views
Skip to first unread message

Emilio Martín

unread,
Dec 22, 2003, 11:19:52 AM12/22/03
to
Estimados amigos y colaboradores,

He recuperado unos datos de otra aplicación, y la Ñ me la
ha colado como ¥.

Mi pregunta es.. ¿como puedo cambiar de forma automatica
ese simbolo por Ñ?... como se pueden imaginar son un
monton de registros, y la ubicación de la Ñ no es fija

... se como seleccionar los registros que contienen ese
simbolo, pero lo que no se es como cambiarlo..

Muchas gracias por la ayuda,
EMilio

Búho

unread,
Dec 22, 2003, 11:25:48 AM12/22/03
to
Hola Emilio....Feliz Navidad
Utiliza la funcion Replace.
Abres el recordset de la tabla y pasas ese campo (De todos los registros)
por la funcion Replace.
O con una consulta de actualizacion, donde pases tambien Replace

--

Saludos desde Valladolid
Francisco Javier García Aguado
---
http://www.buho.tk [http://www.clikear.com/webs/accessbhuo/index.html]
http://groups.msn.com/Access2000VisualBasic/
=======================================
Web de Access de Juan M Afan de Ribera
http://www.juanmafan.tk
=======================================
"Emilio Martín" <ma_e...@hotmail.com> escribió en el mensaje
news:08ad01c3c8a7$6e21fa40$a401...@phx.gbl...

Búho

unread,
Dec 22, 2003, 11:36:22 AM12/22/03
to
Por ejemplo
CurrentDb.Execute "UPDATE Tabla SET Tabla.Campo = Replace(Tabla.Campo, '¥',
'Ñ');"

Chea

unread,
Dec 22, 2003, 11:58:46 AM12/22/03
to
Seguramente te habrá cambiado más letras además de la Ñ. Si se trata de un
archivo Xbase, en http://tinyurl.com/264jy tienes una solución muy buena que
dio nuestro amigo Martín (alias marjan) en este mismo grupo y que consiste
en cambiar un valor denterminado en el registro, sustituyendo OEM pro ANSI,

Además, también haya una función de Eduardo Olaz para pasar de ANSI a OEM y
viceversa en http://tinyurl.com/33f29

--
Saludos.

José Bengoechea Ibaceta [MS-MVP Access]
http://usuarios.lycos.es/jbchea/


"Emilio Martín" <ma_e...@hotmail.com> escribió en el mensaje
news:08ad01c3c8a7$6e21fa40$a401...@phx.gbl...

Emilio Martín

unread,
Dec 22, 2003, 5:21:26 PM12/22/03
to
Muchas gracias, :-)

Un abrazo
Emilio

>-----Mensaje original-----

>.
>

Emilio Martín

unread,
Dec 22, 2003, 5:22:13 PM12/22/03
to
Muchas gracias, :-)

Muy interesantes los links...

EMilio

>-----Mensaje original-----


>Seguramente te habrá cambiado más letras además de la Ñ.
Si se trata de un
>archivo Xbase, en http://tinyurl.com/264jy tienes una
solución muy buena que
>dio nuestro amigo Martín (alias marjan) en este mismo
grupo y que consiste
>en cambiar un valor denterminado en el registro,
sustituyendo OEM pro ANSI,
>
>Además, también haya una función de Eduardo Olaz para
pasar de ANSI a OEM y
>viceversa en http://tinyurl.com/33f29
>
>--
>Saludos.
>
>José Bengoechea Ibaceta [MS-MVP Access]
>http://usuarios.lycos.es/jbchea/
>"Emilio Martín" <ma_e...@hotmail.com> escribió en el
mensaje
>news:08ad01c3c8a7$6e21fa40$a401...@phx.gbl...
>Estimados amigos y colaboradores,
>
>He recuperado unos datos de otra aplicación, y la Ñ me la
>ha colado como ¥.
>
>Mi pregunta es.. ¿como puedo cambiar de forma automatica
>ese simbolo por Ñ?... como se pueden imaginar son un
>monton de registros, y la ubicación de la Ñ no es fija
>

>.... se como seleccionar los registros que contienen ese


>simbolo, pero lo que no se es como cambiarlo..
>
>Muchas gracias por la ayuda,
>EMilio
>
>

>.
>

Emilio Martín

unread,
Dec 22, 2003, 5:41:37 PM12/22/03
to
Compañero lo he probado y me dice que no
reconoce "Replace"..

El mensaje exacto es:
La función 'Replace' no está definida en la expresión...

¿que es lo que pasa?
Emilio

>-----Mensaje original-----

>.
>

Victor Delgadillo

unread,
Dec 22, 2003, 6:00:32 PM12/22/03
to
Revisa si las bibliotecas (DLL) de apoyo a Visual Basic estan marcadas (En
herramientas/referencias de visual basic)

--
Victor Delgadillo MS-MVP Access
Miami, Florida

Mensajes a los grupos de noticia, asi todos nos beneficiamos!

"Emilio Martín" <ma_e...@hotmail.com> wrote in message
news:03ca01c3c8dc$c27f2a60$a101...@phx.gbl...

Emilio Martín

unread,
Dec 22, 2003, 6:13:59 PM12/22/03
to
Lo tengo todo marcado, pero me sigue fallando... creo que
el problema es que tengo algún error de sintaxis...

Emilio

>-----Mensaje original-----

>.
>

Emilio Martín

unread,
Dec 22, 2003, 6:34:39 PM12/22/03
to
Paco, ¿como utilizo replace en una consulta de
actualización?

Gracias
Emilio

PD: No me sale como me comentaste...
>-----Mensaje original-----

>.... se como seleccionar los registros que contienen ese


>simbolo, pero lo que no se es como cambiarlo..
>
>Muchas gracias por la ayuda,
>EMilio
>
>

>.
>

Búho

unread,
Dec 22, 2003, 6:57:00 PM12/22/03
to
Emilio, mira bien, que los parametros de Replace dentro de la Sql deben ir
con comilla simple:
Replace(Tabla.Campo, '¥','Ñ') y no de esta forma:
Replace(Tabla.Campo, "¥","Ñ") como iría en codigo VBA

Te aseguro que funciona. Tengo algunos codigos que funcionan de esta forma.

Y ante la duda...pega aqui tu codigo, el que te dice que NO reconoce
Replace.

--

Saludos desde Valladolid
Francisco Javier García Aguado
---

http://www.buho.tk [http://www.clikear.com/webs/accessbhuo/index.html]
http://groups.msn.com/Access2000VisualBasic/
=======================================
Web de Access de Juan M Afan de Ribera
http://www.juanmafan.tk
=======================================
"Emilio Martín" <ma_e...@hotmail.com> escribió en el mensaje

news:03ca01c3c8dc$c27f2a60$a101...@phx.gbl...

Emilio Martín

unread,
Dec 22, 2003, 7:10:00 PM12/22/03
to
Saludos Paco,

¿No sera que si en registro no existe el simbolo a
reemplazar da error?

Lo digo por que en mi ejemplo, tengo 3000 clientes, de
los cuales 1600 tiene el simbolo y el resto no... y el
primero de todos no lo tiene.

Emilio

>-----Mensaje original-----

>.
>

Emilio Martín

unread,
Dec 22, 2003, 7:30:07 PM12/22/03
to
Lo tengo tal y como dices pero no me funciona...

Una pregunta Paco, ¿como seria una consulta de
actualización que reemplace ¥ por ñ?

Gracias
Emilio

>-----Mensaje original-----

>.
>

Búho

unread,
Dec 22, 2003, 7:45:40 PM12/22/03
to
Emilio...¿No estaras usando Access 97 que no tiene la funcion Replace?
Como sea eso...cachis en la mar....
A mi me funciona perfectamente...pero no estaría de mas, insisto, que
colgaras el codigo aqui
No obstante si tienes Access 97 , utiliza esta funcion Replace, funcion de
usuario, creada para la carencia de Access 97 y que emula la Replace de la
sversiones 2000, XP y 2003

Public Function Replace(sIn As String, sFind As String, _
sReplace As String, Optional nStart As Long = 1, _
Optional nCount As Long = -1, Optional bCompare As _
Long = vbBinaryCompare) As String
Dim nC As Long, nPos As Integer, sOut As String
sOut = sIn
nPos = InStr(nStart, sOut, sFind, bCompare)
If nPos = 0 Then GoTo EndFn:
Do
nC = nC + 1
sOut = left(sOut, nPos - 1) & sReplace & _
Mid(sOut, nPos + Len(sFind))
If nCount <> -1 And nC >= nCount Then Exit Do
nPos = InStr(nStart, sOut, sFind, bCompare)
Loop While nPos > 0
EndFn:
Replace = sOut
End Function

--

Saludos desde Valladolid
Francisco Javier García Aguado
---
http://www.buho.tk [http://www.clikear.com/webs/accessbhuo/index.html]
http://groups.msn.com/Access2000VisualBasic/
=======================================
Web de Access de Juan M Afan de Ribera
http://www.juanmafan.tk
=======================================
"Emilio Martín" <ma_e...@hotmail.com> escribió en el mensaje

news:02d401c3c8e9$1b0f2b60$a601...@phx.gbl...

Búho

unread,
Dec 22, 2003, 7:55:27 PM12/22/03
to
Una consulta de actualizacion es la que te he puesto yo, Emilio.
Si no te funciona por ese metodo (Mira que es raro el tema, pero ya sabes
que en informatica, las brujas haberlas ailas...) tiramos por el metodo
recordset, recorriendo y reemplazando caracteres.
Pero eso mejor ya mañana...":-)

O si quieres, mandame la tabla , si no tiene informacion confidencial y te
la paso yo por la piedra... ;-)

Emilio Martín

unread,
Dec 23, 2003, 4:32:35 AM12/23/03
to
Estoy utilizando Access 2000, y te prometo que el código
es exacto al que tu dices, pero me da ese mensaje... a mi
las brujas estas me tienen loco...

Emilio

PD: Me parece buena idea la de mandarte una de las tablas
que tengo que modificar, .. si puedes devolvermela con la
consulta de actualización o código correcto de lo
agradezco, pues me gustaria aprender, y saber que he
hecho mal. Gracias :-)

¡recuerda que no puedo colgar nada por aqui, estoy
entrando por microsoft!
>-----Mensaje original-----

>.
>

Búho

unread,
Dec 23, 2003, 5:00:48 AM12/23/03
to
Hola Emilio...pues a mi correo con ella.
Ya sabes:

pacoARROBAnemo.es

Búho

unread,
Dec 23, 2003, 7:16:17 AM12/23/03
to
Bueno, aqui va el resumen del expediente X que nos hemos montado Emilio y
yo.
(Antes de contar el rollo,decir que ya le funciona el tema a Emilio)...le
cuento, por que siempre viene bien contar estas cosas por si le pasa a
alguien mas....

La sintaxis de la consulta es correcta, es decir:


"UPDATE Tabla SET Tabla.Campo = Replace(Tabla.Campo,'¥','Ñ');"

¿Que pasaba exactamente?
Varias cosas.
La primera es que Emilio,al copiar y pegar el codigo, dejó un espacio en
blanco en el primer argumento de la funcion Replace, que estaba inmersa en
la consulta.
Es decir y de forma exagerada para que se vea aqui, ponía


"UPDATE Tabla SET Tabla.Campo = Replace(Tabla.Campo, '¥','Ñ');"

Claro, si la funcion Replace se hace directamente desde codigo VBA, no hay
problema, pues el propio editor se encarga de formatear el texto de las
funciones y de colocartelo de forma adecuada.
Pero en este caso concreto, al estar la funcion Replace, como integrante de
una cadena String (La de la propia consulta) pues daba problemas, ya que en
este caso hay que ser escrupoloso con los espacios, las comas y las comillas
simples.
Se quitó ese espacio y la consulta le funcionó a la primera con Windows XP y
Access 2000.
Alegría y gozo.
Pero.........va Emilio, copia el codigo ya corregido, el que funcionaba
bien, le mete en un Windows 2000 y Access 2000 y vuelve a petar. Y ahora ya
no es problema de espacios ni nada por el estilo, pues la sitaxis está bien
y le estaba funcionando perfectamente en su ordenador. Simpelemente le
reporta un error y le dice que no reconoce Replace. !Toma ya!

Por probar que no quede...Emilio coge la funcion Replace que posteé yo ayer
(La que se puede utilizar en Access 97) y EUREKA, le funciona perfectamente
en ese Windows 2000, donde la funcion original Replace de VBA de Access
petaba.

Emilio ha resuelto su problema, pero nos hemos quedado con las ganas de
saber por qué leches la Replace original, corriendo en en un Windows 2000 ha
dado problemas.

Conclusión: Esto de la informatica es un rollo. Nos tenemos ganados todos el
cielo, estoy seguro.

CarCar

unread,
Dec 23, 2003, 9:46:29 AM12/23/03
to
El búho dijo:

>-----Mensaje original-----
...
...


Conclusión: Esto de la informatica es un rollo. Nos
tenemos ganados todos el cielo, estoy seguro.

...
...
>-----------------------------

Y yo le digo... y tú... el primero. :-))

Navideños saludos,
CarCar
MVP-Access

Búho

unread,
Dec 23, 2003, 10:43:54 AM12/23/03
to
:'-)
Muchas gracias Carlos...esto de las Navidades me está poniendo tierno y
sentimental.
Que los paseís todos muy bien en tu preciosa tierra.
0 new messages