Access - índice contador+año

 
Vista:

índice contador+año

Publicado por leidijaiud (27 intervenciones) el 24/04/2009 14:12:36
Hola a todos

tengo el siguiente código en un formulario:

Private Sub Form_BeforeInsert(Cancel As Integer)

Dim Anyo As Integer
Anyo = Year(Date)
Nº_Entrada = Nz(DMax("Nº_Entrada", "tblDocAdminE", "right(IdDoc,4) =" & Anyo)) + 1
IdDoc = Format(Nº_Entrada, "0") & "/" & Format$(Anyo)

End Sub

Necesito que al registrar un documento de entrada se asigne un número correlativo que empiece otra vez de 1 al cambiar de año y que el índice esté formado por dicho número mas el año actual. He rescatado este código de un mensaje de mimenda y creo que es lo que necesito pero estoy haciendo algo mal porque no me incrementa. Es decir, en cada nuevo registro me asigna siempre 1, o sea:
IdDoc: 1/2009
Nº Entrada: 1

Necesito vuestra ayuda por favor... alguien puede decirme dónde está el fallo?

Gracias por adelantado
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
sin imagen de perfil
Val: 28
Ha disminuido su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

RE:índice contador+año

Publicado por Jefferson (382 intervenciones) el 25/04/2009 00:59:07
Hola amig@ leidijaiud....

Exactamente lo que pediste, aunque me dio un poquito de trabajo jejeje
Copia y Pega tal Cual (Por supuesto analizalo)

Private Sub Form_BeforeInsert(Cancel As Integer)
'Asignamos las variables que despues uzaremos
Dim AñoActual As String
Dim NumAsignado As Long
'*************************************************
' Codigo Cortesia de Jefferson Jimenez *
'Extraido de una Funcion Publica de Eduardo Olaz *
' y adapatdo para la LWP de forma simple *
'*************************************************
'Creamos una Constante numerica que antepondra cuatro _
digitos de ceros eliminandoze por valores enteros
Const Ceros As String = "0000"
'Creamos la variable que nos dara el año en curso
AñoActual = Format(Now, _
"yyyy") & "/"
AñoActual = Nz(DMax( _
"IdDoc", _
"tblDocAdminE", _
"IdDoc like '" _
& AñoActual & "*'"), _
AñoActual & Ceros)
'Creamos la variable que nos dara el Numero de la _
Factura e iremos sustituyendo los ceros de la derecha _
por valores numericos segun sea tomado el año en curso
NumAsignado = Val(Right(AñoActual, Len(Ceros)))
NumAsignado = NumAsignado + 1
'Indicamos las formula que ha de tomar para asignarle _
valor al campo de IdDoc e igualmente al Nº_Entrada
IdDoc = Left(AñoActual, 5) & Format(NumAsignado, Ceros)
Nº_Entrada = Format(NumAsignado, Ceros)
'No coloco tratamientos de errores puesto que no deberian haber
End Sub 'Finalizamos

Un placer ayudar
Desde Venezuela
Jefferson
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

RE:índice contador+año

Publicado por leidijaidu (27 intervenciones) el 28/04/2009 13:36:59
Hola Jefferson, lo probaré ahora mismo! Muchas gracias por tu tiempo
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

RE:índice contador+año

Publicado por leidijaidu (27 intervenciones) el 28/04/2009 13:54:40
Exactamente lo que pedía, si señor. Gracias de nuevo
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

RE:índice contador+año

Publicado por leidijaidu (27 intervenciones) el 28/04/2009 13:54:49
Exactamente lo que pedía, si señor. Gracias de nuevo
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

RE:índice contador+año

Publicado por javier (9 intervenciones) el 16/04/2010 16:57:14
Hola comunidad de programadores!

Antes que nada agradesco de antemano el que me puedan ayudar.
Tome prestado este codigo gentileza de

*************************************************
' Codigo Cortesia de Jefferson Jimenez *
'Extraido de una Funcion Publica de Eduardo Olaz *
' y adapatdo para la LWP de forma simple *
'*************************************************
que me sirve para una base que estoy realizando en acces y realmente me ayudo de mucho PERO POR UNA CUESTION VISUAL YO NECESITO QUE PRIMERO SE MUESTRE EL CONTADOR DE REGISTRO (a la izquierda) Y POR LA DERECHA EL AÑO.

HE INTENTADO ADAPTAR EL CODIGO PARA QUE SE VISUALICE ASI PERO SIN EXITO, ES POR ESO QUE APELO A SUS CONOCIMIENTOS. EVIDENTEMENTE ALGO ESTOY HACIENDO MAL.

HE AQUI MI CODIGO QUE ADAPTE Y QUE ES CASI IGUAL AL PROPORCIONADO EN OTRA RESPUESTA.

Dim AñoActual As String
Dim NumAsignado As Long
Const Ceros As String = "0000"

AñoActual = Format(Now, "yy") & "/"
AñoActual = Nz(DMax("NºActa", "Actas", "NºActa like '" & AñoActual & "*'"), AñoActual & Ceros)
NumAsignado = Val(Right(AñoActual, Len(Ceros)))
NumAsignado = NumAsignado + 1
NºActa = Left(AñoActual, 3) & Format(NumAsignado, Ceros)

COMO RESULTADO ME DA EJEMPLO [10/0001] Y YO NECESITO [0001/10]

Gracias a todos.
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