Access - Unir campo autonumerico y texto

   
Vista:
Imágen de perfil de Federico

Unir campo autonumerico y texto

Publicado por Federico fedsanto@gmail.com (15 intervenciones) el 21/06/2017 16:33:12
Saludos comunidad

Tengo un campo autonumerico, con formato 00000000 de 8 digito (en la medida que aumenta va sustituyento al cero ).
Otro campo de texto, con valor predeterminado, ejemplo A0200100101

En conjunto la union de los dos campos es igual a 19 digitos (A020010010100000001, y sucesivos..

PREGUNTA
QUE FUNCION PUEDO APLICAR PARA ESTA UNION SIN QUE ME ALTERE EL RESULTADO DE LOS 19 DIGITOS

GRACIAS ANTICIPADS
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 Antonio

Unir campo autonumerico y texto

Publicado por Antonio (145 intervenciones) el 21/06/2017 17:55:06
Tienes que convertir tu id automumerico a cadena

la funcion es CStr()

' Declaro variables
Dim hola As String
Dim aux As Long
aux = 12334
hola = "A0200100101"

'Proceso
hola = hola + CStr(aux)
Debug.Print hola


'Salida
A020010010112334


respondeme diciendo si te sirvio o no

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
Imágen de perfil de Federico

Unir campo autonumerico y texto

Publicado por Federico (15 intervenciones) el 21/06/2017 19:37:43
Saludos Antonio

El campo autonumerio debe tener 8 posiciones, los espacios de la izquierda deben estar rellenado con ceros.

El resultado debe tener 11 posiciones (11 de su campo "hola" y 8 del campo autonumerio "aux")

Ver su ejemplo

Gracias por su inetes en tema
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 Antonio

Unir campo autonumerico y texto

Publicado por Antonio (145 intervenciones) el 21/06/2017 20:45:41
Solo lo tienes que adaptar
asi queda


1
2
3
4
5
6
7
8
9
10
11
12
' Declaro variables
Dim hola As String
Dim aux As Long
aux = 1
hola = "A0200100101"
 
'Proceso
hola = hola + CStr(Format(aux, "00000000"))
 Debug.Print hola
 
'Salida
A020010010100000001
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

Unir campo autonumerico y texto

Publicado por Anonimo (991 intervenciones) el 21/06/2017 21:04:08
La parte constante (A0200100101) no influye, solo se precisa la parte numérica que como es de longitud conocida, es sencillo extraerla
Basándose en que se desea un incremental, nos basaremos en el mayor del conjunto ya existente para obtener el ultimo y tras ello incrementarlo.

En el supuesto de que el campo se denomine UnCodigo y que pertenezca a una tabla llamada UnaTabla

Como obtener los 8 dígitos del contenido de 'UnCodigo' :
zzz = Mid ([UnCodigo], 12)
(el numero doce es el indicador de donde comienza la parte que nos interesa extraer de todo el conjunto)

Si el código fuera : A020010010100000001 el resultado obtenido seria '00000001'

Como es un texto, la función VAL lo convierte en numero:
zzz = Val(Mid ([UnCodigo], 12))

Como ya obtenemos el numero del contenido del campo, localizamos el mayor (función de dominio DMax)
zzz = Dmax("Val(Mid ([uncodigo], 12))", "UnaTabla")

En teoría esto nos devuelve (en este caso) el numero uno, lo incrementamos
zzz = Dmax("Val(Mid ([uncodigo], 12))", "UnaTabla") +1

Se desea que ocupe 8 espacios (rellenando con ceros por la izquierda):

zzz = Format (Dmax("Val(Mid ([uncodigo], 12))", "UnaTabla") +1 , "00000000")

Con lo que obtenemos '00000002' al que añadimos la parte constante:
zzz = "A0200100101" & Format (Dmax("Val(Mid ([uncodigo], 12))", "UnaTabla") +1 , "00000000")

¿Qué puede ocurrir si se inicializa la tabla y no existe ningún registro? ... considerando el caso aplicamos la función NZ:
zzz = "A0200100101" & Format (Nz(Dmax("Val(Mid ([uncodigo], 12))", "[UnaTabla]"), 0) +1 , "00000000")

Y como su destino se supone será el campo 'UnCodigo' de un nuevo registro, se lo adjudicamos:
Me.[UnCodigo] = "A0200100101" & Format (Nz(Dmax("Val(Mid ([uncodigo], 12))", "[UnaTabla]"), 0) +1 , "00000000")

Y salvo algún error de sintaxis la formula para obtener lo que se solicita queda asi:

Me.[UnCodigo] = "A0200100101" & Format (Nz(Dmax("Val(Mid ([uncodigo], 12))", "[UnaTabla]"), 0) +1 , "00000000")
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 Federico

Unir campo autonumerico y texto

Publicado por Federico (15 intervenciones) el 21/06/2017 22:20:27
Gracias Antonio
Me falto comunicarte que estoy trabajando en access:
Tabla, consulta e informe,
¿tu soluciones aplican para estas?
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 Antonio

Unir campo autonumerico y texto

Publicado por Antonio (145 intervenciones) el 21/06/2017 22:58:42
El código es visual basic debe aplicar. La verdad yo solo hice las pruebas con 2 variables ,en un formulario puse un botón que dándole click , me imprimia en la ventana de inmediato. El resultado que querias

Pruebalo con 2 cuadro de texto. En lugar de aux y hola. O con los cuadros de texto que estas trabajando.
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 Federico

Unir campo autonumerico y texto

Publicado por Federico (15 intervenciones) el 22/06/2017 21:04:38
Gracias por tu interes en el tema,
Lo he logrado a travez de consulta de accedd con la expresion siguiente:

Expr1:[SERI ]+DER("00000000" & [ ID],8)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad