Access - Uso de Replace en los primeros caracteres si son numeros

   
Vista:

Uso de Replace en los primeros caracteres si son numeros

Publicado por Alejandro alesan055@gmail.com (7 intervenciones) el 27/04/2015 17:49:40
Hola a todos, quisiera eliminar de un campo que contiene una pregunta con su número, sólo el número de pregunta, pero no los números que pueda contener la misma pregunta. No sé si me he explicado bien, un ejemplo:

48.- De qué fecha es la Ley 20/2014?

Sólo quiero eliminar el 48, y respetar los números contenidos en la pregunta.
He utilizado "UPDATE Test Set Pregunta = Replace(Pregunta,'1','');"
Pero elimina todos los números.
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto

Uso de Replace en los primeros caracteres si son numeros

Publicado por Norberto (432 intervenciones) el 28/04/2015 10:16:39
Hola.

Si todas las preguntas cumplen el patrón "nn.- ", lo que debes de hacer es eliminar los primeros caracteres hasta el espacio que va detrás del guión. Una forma de hacerlo sería reemplazar con Mid(Pregunta, InStr(1, Pregunta, ".- ") + 3). Pero ojo. Si alguna pregunta no contine la secuencia ".- ", InStr(...) + 4 será 4, con lo que se eliminarán los tres primeros caracteres del texto.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Uso de Replace en los primeros caracteres si son numeros

Publicado por Alejandro alesan055@gmail.com (7 intervenciones) el 28/04/2015 17:41:26
Gracias Norberto por tu pronta contestación.

El código funciona bien, pero a ser posible me gustaría que sólo borrase caracteres si son numéricos o como en este caso ".-", ya que si se ejecuta el código dos veces, en la segunda pasada borra las primeras letras de la pregunta.

Un saludo.
Alejandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

Uso de Replace en los primeros caracteres si son numeros

Publicado por Norberto (432 intervenciones) el 30/04/2015 09:37:08
Hola.

El la SQL añádele "... WHERE InStr(1, Pregunta, ".- ") > 0;"

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Uso de Replace en los primeros caracteres si son numeros

Publicado por Alejandro (7 intervenciones) el 30/04/2015 15:48:40
Hola

Disculpa que vuelva de nuevo, pero con esta línea me borra todos los números que contiene la pregunta, y yo sólo quiero borrar los dos o tres primeros números, que indican el número de pregunta

DoCmd.RunSQL "UPDATE Test SET Pregunta = Replace(Pregunta, '1)', '') WHERE InStr(1, Pregunta, '1') > 0;"


En esta pregunta ejemplo sólo quiero borrar el "48.", y que no borre ni el 1 ni el 4 de 2014.
18. De qué fecha es la Ley 20/2014?

Un saludo.
Alejandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

Uso de Replace en los primeros caracteres si son numeros

Publicado por Norberto (432 intervenciones) el 03/05/2015 13:47:59
Hola de nuevo.

Olvídate del Replace.

UPDATE Test Set Pregunta = Mid(Pregunta, InStr(1, Pregunta, '.- ') + 3) WHERE InStr(1, Pregunta, '.- ') < 4;

De esta forma, si vuelves a ejecutar el código no se carga los primeros caracteres.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Uso de Replace en los primeros caracteres si son numeros

Publicado por Alejandro alesan055@gmail.com (7 intervenciones) el 03/05/2015 20:48:14
Hola
Algo debo de hacer mal, porque sigue comiéndose los caracteres por la izquierda cada vez que ejecutas el código.

He optado por otra solución, que no sé si será muy correcta, pero funciona:

1
2
3
4
5
6
For i = 1 To nReg
    If InStr( Me.Pregunta, "1" ) = 1 Then
         Me.Pregunta.Value = Right( Me.Pregunta, Len( Me.Pregunta ) - 1 )
    End If
    DoCmd.GoToRecord , , acNext
Next i

De todas formas, Norberto, muchas gracias por tu interés.
Un cordial saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

Uso de Replace en los primeros caracteres si son numeros

Publicado por Norberto (432 intervenciones) el 04/05/2015 16:43:35
Ok.

Me alegro de que hayas encontrado una solución, pero la consulta debería de funcionar. ¿Qué te parece si mandas la tabla origina,l aunque sea en formato de Excel, y le echo un vistazo? Más que nada para averiguar dónde está el problema.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar