Discussion:
Problema con la Funcion Replace dentro de una SQL
(demasiado antiguo para responder)
David Varez
2008-03-05 17:04:02 UTC
Permalink
Hola buenas tardes. Tengo un problema, y no se como hacerlo, y ni siquiera
sies posible.

Tengo que hacer una Sql contra un campo que puede tener espacios en blanco
en los valores, y esta consulta no debe tener en cuenta dichos espacios a la
hora de devolver los registros.

es decir, que si en el campo hay "l a casa azul" yo lo que quiero hacer es
eliminar todos los espacios de ese campo, de manera que filtremos por que el
campo tenga el valor "lacasaazul'.

Mas o menos esa es mi duda.

Agradecería vuestra ayuda, ya que he buscado por internet, y no he visto
nada de nada.

Muchas gracias
Chea
2008-03-05 17:41:19 UTC
Permalink
¿Y no funciona Replace?

...WHERE Replace (MiCampo, " ","") = "lacasaazul"
--
Saludos

José Bengoechea Ibaceta [MS-MVP Access]
http://jbengoechea.com/
http://jbchea.net
Post by David Varez
Hola buenas tardes. Tengo un problema, y no se como hacerlo, y ni siquiera
sies posible.
Tengo que hacer una Sql contra un campo que puede tener espacios en blanco
en los valores, y esta consulta no debe tener en cuenta dichos espacios a la
hora de devolver los registros.
es decir, que si en el campo hay "l a casa azul" yo lo que quiero hacer es
eliminar todos los espacios de ese campo, de manera que filtremos por que el
campo tenga el valor "lacasaazul'.
Mas o menos esa es mi duda.
Agradecería vuestra ayuda, ya que he buscado por internet, y no he visto
nada de nada.
Muchas gracias
Emilio
2008-03-05 17:45:27 UTC
Permalink
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!

Prueba así

SELECT Replace(ElCampo, " ", "") FROM LaTabla WHERE ElCampo ="lacasaazul"

Saludos a ***@s

Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
Post by David Varez
Hola buenas tardes. Tengo un problema, y no se como hacerlo, y ni siquiera
sies posible.
Tengo que hacer una Sql contra un campo que puede tener espacios en blanco
en los valores, y esta consulta no debe tener en cuenta dichos espacios a la
hora de devolver los registros.
es decir, que si en el campo hay "l a casa azul" yo lo que quiero hacer es
eliminar todos los espacios de ese campo, de manera que filtremos por que el
campo tenga el valor "lacasaazul'.
Mas o menos esa es mi duda.
Agradecería vuestra ayuda, ya que he buscado por internet, y no he visto
nada de nada.
Muchas gracias
Emilio
2008-03-05 18:02:22 UTC
Permalink
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
me temo que no, eso de no probar, a ver así

SELECT Replace(ElCampo, " ", "") AS Loquesea FROM LaTabla WHERE Loquesea
="lacasaazul"


Saludos a ***@s

Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
Post by Emilio
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
Prueba así
SELECT Replace(ElCampo, " ", "") FROM LaTabla WHERE ElCampo ="lacasaazul"
Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
Post by David Varez
Hola buenas tardes. Tengo un problema, y no se como hacerlo, y ni siquiera
sies posible.
Tengo que hacer una Sql contra un campo que puede tener espacios en blanco
en los valores, y esta consulta no debe tener en cuenta dichos espacios a la
hora de devolver los registros.
es decir, que si en el campo hay "l a casa azul" yo lo que quiero hacer es
eliminar todos los espacios de ese campo, de manera que filtremos por que el
campo tenga el valor "lacasaazul'.
Mas o menos esa es mi duda.
Agradecería vuestra ayuda, ya que he buscado por internet, y no he visto
nada de nada.
Muchas gracias
David Varez
2008-03-06 08:21:01 UTC
Permalink
Chicos, no funcionó, por que al intentar ejecutar la consulta me dice que no
se reconoce la instrucción replace.

Se os ocurre otra cosa para probar?
Post by Emilio
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
me temo que no, eso de no probar, a ver así
SELECT Replace(ElCampo, " ", "") AS Loquesea FROM LaTabla WHERE Loquesea
="lacasaazul"
Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
Post by Emilio
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
Prueba así
SELECT Replace(ElCampo, " ", "") FROM LaTabla WHERE ElCampo ="lacasaazul"
Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
Post by David Varez
Hola buenas tardes. Tengo un problema, y no se como hacerlo, y ni siquiera
sies posible.
Tengo que hacer una Sql contra un campo que puede tener espacios en blanco
en los valores, y esta consulta no debe tener en cuenta dichos espacios a la
hora de devolver los registros.
es decir, que si en el campo hay "l a casa azul" yo lo que quiero hacer es
eliminar todos los espacios de ese campo, de manera que filtremos por que el
campo tenga el valor "lacasaazul'.
Mas o menos esa es mi duda.
Agradecería vuestra ayuda, ya que he buscado por internet, y no he visto
nada de nada.
Muchas gracias
Raipon
2008-03-06 08:55:00 UTC
Permalink
A partir de Access 2000 está disponbible Replace(), ¿ qué versión
tienes tú ?
David Varez
2008-03-07 11:10:00 UTC
Permalink
Pues justamente trabajo con Officce 2000, y creo que la migración al 2003 o
posterior va a ser un poco complicada.
Post by Raipon
A partir de Access 2000 está disponbible Replace(), ¿ qué versión
tienes tú ?
Emilio
2008-03-07 14:35:06 UTC
Permalink
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
pega esta función en un módulo y cambia replace por Reemplazar

'***********************************************************************************
'* busca una cadena y la sustituye por otra
'* uso: strLineaTexto = Reemplazar(strLineaTexto, Chr(9), "")
'* ESH 15/09/95 14:50
'***********************************************************************************

Function Reemplazar(strLineaTexto As String, strCadenaBuscada As String,
strCadenaReemplazar As String) As String
Dim intPosicion As Integer, _
intLongitudLinea As Integer, _
intLongitudCadenaBuscada As Integer, _
strLineaTexto2 As String, _
strLineaTexto3 As String

' busco la cadena, y si existe la reemplaza tantas veces como la encuentra
intPosicion = 1
intLongitudLinea = Len(strLineaTexto) ' mido la línea
intLongitudCadenaBuscada = Len(strCadenaBuscada) ' mido la cadena buscada

While intPosicion <> 0 ' se repite mientras aparezca la cadena
buscada
intPosicion = Nz(InStr(strLineaTexto, strCadenaBuscada), 0) ' busco
la cadena
If intPosicion <> 0 Then ' si aparece
strLineaTexto2 = Mid(strLineaTexto, 1, intPosicion - 1) '
primera parte de la línea hasta la cadena buscada
strLineaTexto3 = Mid(strLineaTexto, (intPosicion +
(intLongitudCadenaBuscada)), intLongitudLinea) '* segunda parte de la
cadena despues de la cadena buscada
strLineaTexto = strLineaTexto2 & strCadenaReemplazar & strLineaTexto3
' inserto la cadena a reemplazar en medio
End If
Wend
Reemplazar = strLineaTexto ' asigno la linea modificada como salida de
la función
End Function ' Reemplazar


Saludos a ***@s

Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
Post by David Varez
Pues justamente trabajo con Officce 2000, y creo que la migración al 2003 o
posterior va a ser un poco complicada.
Post by Raipon
A partir de Access 2000 está disponbible Replace(), ¿ qué versión
tienes tú ?
Patxi Sanz
2008-03-07 19:21:05 UTC
Permalink
En Access 2000 existe la función Replace.

¿Has comprobado en el editor de VBA, menú Herramientas -> Referencias, que
no te falte ninguna de las que tengas marcadas?
--
Un saludo,


Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
http://es.geocities.com/patxisanz/index.html
Tudela (NA)
Loading...