** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Formato campo
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoFormato campo

 Responder Responder
Autor
Mensaje
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 635
Enlace directo a este mensaje Tema: Formato campo
    Enviado: 16/Mayo/2017 a las 11:52
Buenas.
Tengo un campo de texto donde pongo el año y querría añadir a la derecha del dato del año un texto por ejemplo 00023. El nuevo dato del campo debería quedar 201700023.

Gracias y un saludo
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 2814
Enlace directo a este mensaje Enviado: 16/Mayo/2017 a las 13:14
Hola.
Por mi parte, al menos,  no entiendo la pregunta. En un campo de texto  no hay problema para escribir el 201700023
Otra cosa es que se pretenda alguna cosa diferente a escribir esa expresión o hacerlo de forma 'automática'
Ya aclaras la situación
Un saludo a todos
Arriba
buho Ver desplegable
Administrador
Administrador
Avatar

Unido: 10/Abril/2004
Localización: Lejos,por favor
Estado: Sin conexión
Puntos: 11187
Enlace directo a este mensaje Enviado: 16/Mayo/2017 a las 14:21
Yo tampoco lo entiendo.

Salvo que se refiera a algo elemental como esto:

MiTxt=MiTxt & "00023"

Por ejemplo... 
Foro Offline GRATIS:BAJAR.
Página WEB:Web

Saludos desde Valladolid
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 635
Enlace directo a este mensaje Enviado: 16/Mayo/2017 a las 14:28
Perdón, me explico:
El campo de texto va a ser el número de una factura, donde los 4 primeros dígitos son el año y los otros 5 los correspondientes al número de la factura. Es decir que si la última factura es la 201700238, la siguiente debería ser la 201700239.
¿Cómo hago para añadir en este caso los dígitos 00239?
Gracias.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 4049
Enlace directo a este mensaje Enviado: 16/Mayo/2017 a las 15:57
Hola!

¿Y de donde salen los dígitos 00238?
Un Saludo.
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5064
Enlace directo a este mensaje Enviado: 16/Mayo/2017 a las 21:33
Hola a todos.

En esta búsqueda que pongo:


se habla de "falsos autonuméricos" (es lo que tu necesitas para saber el último 239). Eso combinado con lo que ya te han puesto, es lo te hace falta.

Saludos.
Gracias
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 635
Enlace directo a este mensaje Enviado: 17/Mayo/2017 a las 09:22
Gracias a todos.
Con la pregunta de Mounir, estoy logrando lo que quiero.
Os iré informando.
Arriba
main Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Agosto/2009
Localización: OVIEDO
Estado: Sin conexión
Puntos: 835
Enlace directo a este mensaje Enviado: 17/Mayo/2017 a las 10:27
Hola
Si el campo de Número de Factura es númerico
El nuevo número de factura siguiente, a vuelapluma, sería algo asi;
format(nz(dmax("NumFtra","Facturas"),0)+1,"00000")
y delante o detrás ya le pones el año
saludos



Editado por main - 17/Mayo/2017 a las 10:28
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 635
Enlace directo a este mensaje Enviado: 18/Mayo/2017 a las 09:52
Muchas gracias a todos.
El problema lo he resuelto con el siguiente código:
vAñoActual = Year(Date)
vFacturaMayor = DMax("PED_NUMFACTURA", "T_Pedidos")
vUltimoAño = Left(vFacturaMayor, 4)
If vUltimoAño = vAñoActual Then
vNumFacturaNueva = Format(Right(vFacturaMayor, 6) + 1, "000000")
vAñoNumFacturaNueva = vUltimoAño & vNumFacturaNueva
Else
vNumFacturaNueva = "000001"
vAñoNumFacturaNueva = vAñoActual & vNumFacturaNueva
End If

Ahora bien, admito sugerencias para mejorar el código y hacerlo más ligero. Seguro que se puede mejorar.

SALUDOS
Arriba
main Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Agosto/2009
Localización: OVIEDO
Estado: Sin conexión
Puntos: 835
Enlace directo a este mensaje Enviado: 18/Mayo/2017 a las 10:18
Si en el formulario desde donde grabas el pedido tienes un campo que recoja el año de la factura que vas a numerar y que se llame txtAño por ejemplo
NFra= format(nz(dmax("NumFtra","Facturas","Val(left(NumFtra,4))=" & me.txtAño ),0)+1,"00000")
Creo que te lo daria.
Yo suelo ponerlo en el evento antes de insertar
Saludos


Editado por main - 18/Mayo/2017 a las 10:27
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 4049
Enlace directo a este mensaje Enviado: 18/Mayo/2017 a las 10:20
Hola!

Mira a ver así:

en el evento al activar el registro del formulario:-

Private Sub FORM_Current ()
If Not Me.NewRecord Then Exit Sub

Me.PED_NUMFACTURA = Year(Date) & Format(Nz(DMax("Val( Mid(PED_NUMFACTURA, 5))", "T_Pedidos", "Val( Left(PED_NUMFACTURA,4)) = " & Year (date)), 0) + 1, "00000")

End Sub

Editado por mounir - 18/Mayo/2017 a las 10:21
Un Saludo.
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 635
Enlace directo a este mensaje Enviado: 18/Mayo/2017 a las 10:51
Gracias.
Voy a estudiar ambas opciones, para mejorar el código, aunque de momento dejaré mi código.
Este hilo se puede cerrar satisfactoriamente.
Saludos.
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5064
Enlace directo a este mensaje Enviado: 18/Mayo/2017 a las 14:33
Hola de nuevo.

Una simple mejora con el mismo código:


vFacturaMayor = DMax("PED_NUMFACTURA", "T_Pedidos")

If Year(Date) = Left(vFacturaMayor,4) then
vNumFacturaNueva = Format(Right(vFacturaMayor, 6) + 1, "000000")

Else
vNumFacturaNueva = "000001"

End If

vAñoNumFacturaNueva = vAñoActual & vNumFacturaNueva

Ya te ahorras tres líneas de tu mismo código + las declaraciones de variables

Seguramente es un 30%/40% de todo tu código, menos que podrías tener.

Saludos.
Gracias
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 635
Enlace directo a este mensaje Enviado: 19/Mayo/2017 a las 08:09
Muchas gracias Vimipas, lo probaré como he dicho en un futuro, ahora de momento dejo mi código.
Este hilo se puede cerrar satisfactoriamente.
Saludos a todos.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable