Access - Índice contador+año

 
Vista:

Índice contador+año

Publicado por leidijaidu (27 intervenciones) el 24/04/2009 14:07:53
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

Lo he rescatado de un mensaje de mimenda, y es justo lo que necesito, puesto que para registrar un documento de entrada necesito darle un número correlativo que empiece otra vez de 1 al cambiar de año, y a la vez quiero que el índice esté formado por dicho número más el año actual.

Pero no incrementa. Es decir, en cada nuevo registro me pone
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

RE:Índice contador+año

Publicado por mi menda (1111 intervenciones) el 25/04/2009 10:01:34
Hola:
Pues no le veo ningún fallo. Pero eso ocurre porque la función DMax() siempre devuelve Nulo o sea: O y le suma 1.
Sí el campo IdDoc es el campo clave de tipo Texto
Sí el campo Nº_Entrada es un campo númerico (Entero largo)

Tendría que funcionar perfectamente. Te falta poner sí es un nuevo registro:

Dim Anyo As Integer
Anyo = Year(Date)

If NewRecord Then
Nº_Entrada = Nz(DMax("Nº_Entrada", "tblDocAdminE", "right(IdDoc,4) =" & Anyo)) + 1
IdDoc = Format(Nº_Entrada, "0/") & Format$(Anyo)
End If

Un saludo.
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 05/05/2009 17:23:43
Hola mimenda,
al colgar esta consulta hice algo mal y se subió dos veces y vi la respuesta que me mandaron al otro pero no la tuya hasta ahora. Jefferson me mostró otra forma de hacerlo que me va muy bien, pero muchas gracias por tu respuesta.

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