Concatenar datos numéricos con vba access

Tengo un problema para concatenar un campo numérico con una función dmax en vba. El tema es que tengo un campo numérico llamado [IdProducto] y un segundo campo tipo texto llamado [Idsubproducto]. Lo que necesito hacer y no se como, es que en el campo Idsubproucto, al cargar un nuevo registro me aparezca un código formado por el numero del IdProducto junto con un N° creciente que se genera cada vez que agrego un subproducto, con el siguiente formato [N° IdProducto]-00, donde el N° 00 vaya aumentando cada vez que agrego un subproducto. (No se si esta muy claro). Para ello lo que hice es lo siguiente:

Forms![Producto]![Subproducto].Form![Subproducto].DefaultValue = Format(Me.IdProducto & "" & Format(Nz(DMax("[IdSubproducto]", "Subproducto", "Subproducto![IdProducto] = " & Me.IdProducto) + 1, "1"), "00"), "00000-00")

Pero en vez de aparecer el N° con el formato, me lo escribe como un N° con signo negativo.

1 respuesta

Respuesta
2

Prueba así:

CStr(Format(Me.IdProducto,"00000") & "-" & Format(Nz(DMax("[IdSubproducto]", "Subproducto", "Subproducto![IdProducto] = " & Me.IdProducto),0) + 1, "00"))

Gracias Sveinbjorn, pero no logro resolverlo, puse el código pero sigue sin funcionar, el tema es que me lo reconoce como una cuenta y me realiza la resta entre los dos.

Gracias

A ver ahora, porque no puedo comprobarlo:

CStr(Format(Me.IdProducto,"00000"))  & Chr(45) & CStr(Format(Nz(DMax("[IdSubproducto]", "Subproducto", "Subproducto![IdProducto] = " & Me.IdProducto),0) + 1, "00"))

Tampoco funciona, probe poner las dos expresiones en dos variables tipo texto y juntarlas y tampoco, quiza la opcion seria unir los dos y luego darle el formato 00000-00, pero no se como

Gracias

Sigue realizándome la resta entre los dos, quizá lo que debiera hacer, pero no se como es unir los dos campos y después darle de alguna manera el formato 00000-00.

Gracias

Acabo de probar la opción que te di ayer, y a mi me encadena perfectamente: http://www.filebig.net/files/jv6PHSZuan

En el adjunto te va otra alternativa, la que sugieres en el último post, y también funciona:

Format(Me.IdProducto & Nz(DMax("[IdSubproducto]", "Subproducto", "Subproducto![IdProducto] = " & Me.IdProducto),0) + 1, "00000-00")

No te fijes tanto en los eventos ni en el código en general, como en la expresión.

¡Gracias! Funciona perfecto

El problema estaba en que si lo escribía como [Campo].defaultvalue = ... me hacia la resta, pero si lo escribo como [Campo].value = ...... Funciona perfecto.

Muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas