Access - Extraer de carne de identidad CI los 6 primeros digitos

 
Vista:
sin imagen de perfil
Val: 35
Ha aumentado su posición en 45 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por anselmo (22 intervenciones) el 29/05/2021 22:14:02
Hola

necesito de un numero de 11 digitos, los primeros 6 corresponden al año, mes , dia , osea la fecha de nacimiento.
ejemplo 76022402788 se extraen los 6 primeros 760224 y estos darian la fecha 24/02/1976 y esta guardarla en un campo.

necesitaria un codigo para en access poder sacar este valor con el cual calcularia la edad(que ya lo se hacer) y no tendria que estar introduciendo la fecha de nacimiento como otro campo mas.

saludos

gracias
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

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por Anonimo (3315 intervenciones) el 29/05/2021 23:19:51
La función DateSerial y la función Mid lo resuelven:

Se dispone de un dato al que llamaremos 'Documento_1', contiene valores de fecha con formato personalizado y se desea normalizarlo.
1
Campo_Fecha = DateSerial( Mid(Documento_1, 1,2) , Mid(Documento_1, 3,2) , Mid(Documento_1, 5,2) )

En la ventana de inmediato:

Documento_1 ="76022402788"
?DateSerial(Mid(Documento_1, 1,2), Mid(Documento_1, 3,2), Mid(Documento_1, 5,2))
24/02/1976
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
sin imagen de perfil
Val: 35
Ha aumentado su posición en 45 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por anselmo (22 intervenciones) el 29/05/2021 23:34:08
Gracias `por la ayuda, pero donde pondria el codigo para que se ejecutase automaticamente que entre el valor de CI
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
sin imagen de perfil
Val: 35
Ha aumentado su posición en 45 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por anselmo (22 intervenciones) el 30/05/2021 00:14:10
mil gracias ya me funcionó, uff llevaba rato en esto gracias amigo
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
sin imagen de perfil
Val: 35
Ha aumentado su posición en 45 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por anselmo (22 intervenciones) el 03/06/2021 17:46:16
Hola nuevamente

todo funciona correctamente, como me explicaste, pero tengo un problema, cuando el número empieza con 00 da error, ejemplo:

00021225755, donde 00 es el año 2000
02 febrero
12 el dia

habra una solucion para esto?

saludos
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

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por Anonimo (3315 intervenciones) el 03/06/2021 18:41:48
Ese ¿bug? fue resuelto en el cambio de siglo para resolver el inconveniente de que solo se utilizasen dos dígitos.

Del año 50 al año 99 (1950-1999) se les considera del siglo XX, del 00 al 49 (2000-2049) del siglo XXI. (disensiones aparte sobre cuando comienza el siglo XXI)

En la ventana de inmediato parece que la regla sigue vigente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Documento_1 ="00022402788"
?DateSerial(Mid(Documento_1, 1,2), Mid(Documento_1, 3,2), Mid(Documento_1, 5,2))
24/02/2000
 
Eliminamos los dos digitos del año y en su lugar calculamos un valor creciente:
 
Documento_2= "022402788"
For nn =98 to 103: debug.Print "Dato: " & format(nn mod 100,"00"), DateSerial( format(nn mod 100,"00") , Mid(Documento_2, 1,2), Mid(Documento_2, 3,2)): next nn
Dato: 98      24/02/1998
Dato: 99      24/02/1999
Dato: 00      24/02/2000
Dato: 01      24/02/2001
Dato: 02      24/02/2002
Dato: 03      24/02/2003
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

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por jose (830 intervenciones) el 03/06/2021 20:19:59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dim fnacto as date
 
     q$="76022402788"
 
'el año los dos caracteres de la izquierda
      qaño= left$(q$ ,2)
'el mes  2 caracteres a partir del tercero
    qmes=mid$(q$ ,3,2)
'el dia  2 caracteres a partir del quinto
    qdia=  mid$(q$ ,5,2)
 
'ahora bien , con el año tenemos un problema  porque n o sabenos si es de  19 0 20
'yo haria una cosa los que sean menores de 22  del siglo 21    los anteriores del siglo 20
if val(qaño)    >= 22  then let  qaño="19"& qaño  else    qaño="20" & qaño
 
fnacto= qdia &"/"& qmes & "/ "& qaño
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
sin imagen de perfil
Val: 35
Ha aumentado su posición en 45 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por anselmo (22 intervenciones) el 04/06/2021 03:02:45
Gracias Antonio y jose, por su ayuda, probare con los dos ejemplos a ver como me funciona, pero tengo unas dudas:

En el caso que me explica Antonio:
con el número 00022402788

1. El campo tendria que ponerlo tipo texto, pues es que como número, en cuanto lo introduzco me borra los digitos con ceros.
2. si podrias ayudarme donde pongo ese codigo.

En el caso de jose:
1. tengo que declarar q$ como variable?

gracias
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

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por Anonimo (3315 intervenciones) el 04/06/2021 12:52:21
Para ese tipo de información que tiene formato y no se utilizara para cálculos matemáticos, el campo a de ser de tipo alfanumerico (texto) independiente de que solo se utilicen caracteres numéricos.
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
sin imagen de perfil
Val: 35
Ha aumentado su posición en 45 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer de carne de identidad CI los 6 primeros digitos

Publicado por anselmo (22 intervenciones) el 04/06/2021 14:56:48
gracias Antonio, por la ayuda
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