Extraer texto especifico de un campo

Bueno tal cual dice el titulo solo quiero extraer un texto desde un campo, pero con algo de complejidad que aun no logro.

En el campo se almacena un dato como el siguiente:

portal.sidiv.regis.cl/docstatus?RUN=12817443-8&type=CEDULA&serial=520672906&mrz=52067290658409045278549043

Lo que deseo es extraer en otro campo de la consulta solo esto : 12817443-8

Y para agregar un poco mas de complejidad en el mismo campo también estará este tipo de registro.

portal.sidiv.regis.cl/docstatus?520672906&mrz=52067290658745890452409043RUN=12817443-8&type=CEDULA&serial=u6r46723vjhbfjdsg

Que también deseo extraer el valor como en el dato anterior: 12817443-8

Esta información claramente es inventada pero me interesa saber como extraer esa información en particular, ya que ciertamente es para extraer el DNI de una base de datos que en algunos registros fueron ingresados con el código actual y otros con código antiguo por lo tanto la cadena de texto que quiero extraer cambia de posición en esas dos variables.

2 respuestas

Respuesta
1

¿El texto 12817443-8 es constante?

Todo indica que es variable, ¿me refiero es a la longitud de la cadena?

Pruebe con esta función:

Public Function extDNI(strTexto As String) As String
  Dim pos_guion As Integer
  pos_guion = InStr(1, strTexto, "-")
  extDNI = Mid(Mid(strTexto, pos_guion - 8), 1, 10)
End Function

Ejemplos de llamada:

 ?extDNI("portal.sidiv.regis.cl/docstatus?RUN=12817443-8&type=CEDULA&serial=520672906&mrz=52067290658409045278549043")
12817443-8
?extDNI("portal.sidiv.regis.cl/docstatus?520672906&mrz=52067290658745890452409043RUN=12817443-8&type=CEDULA&serial=u6r46723vjhbfjdsg") 
12817443-8

Donde me preguntas si el texto es constante si lo es, pero solo el formato en que se entrega , por lo tanto el dato varia ejemplo 15813443-5 ,15364443-8,12456789-8

Lo otro que no entendí es como implementar lo tu respuesta en una tabla de consulta.

Y de verdad muchas gracias por tu respuesta

Le explico como implementa el código:

Tengo la tabla con los datos de la cadena de texto:

Creo una consulta con base en esta tabla:

Observe como utilizo la función la cual debe estar almacenada en un Módulo VBA como está en la respuesta que de presenté.

Resultado de la consulta:

Observe la columna DNI efectivamente aparecen solo los DNI del campo "texto".

¡Gracias! 

Hey de verdad te la has jugado eres un verdadero héroe sin capa, dar gracias no bastara 

Gracias por valorar el esfuerzo

Respuesta
-1

¿Y por que no intentas con la función hallar?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas