Cómo se programa en Microsoft Access un número autonumérico con una condición (por ej. Que se pueda duplicar pasado un tiempo)?

Tengo una duda que no sé resolver… ¿Podría alguien ayudarme?

Necesito en Microsoft Access 2013 un campo auto numérico que reinicie con el cambio de año -lo escribo en otro campo de la tabla y el tipo de dato que usé es numérico-, por ejemplo:

Año Número Texto

2014 1 xx

2014 2 xx

2014 3 xxx

2015 1 xxx

2015 2 xxx

2015 3 xxx

2015 4 xxx

2014 4 xxx

2014 5 xxx

¿Me pueden dar alguna sugerencia? :)

1 Respuesta

Respuesta
2

Aquí te dejo un par de ejemplos de las webs de otros dos expertos, que te pueden orientar:

http://angelessebas.es/Caso049.asp?vTitulo=Crear%20un%20correlativo,%20empezando%20por%201%20cada%20a%F1o 

http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/93-ejemplos-explicados/ejemplos-de-formularios/158-autonumerico-manual 

http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/93-ejemplos-explicados/ejemplos-de-formularios/158-autonumerico-manual 

Muchas gracias!!!

Me sirve mucho el primer link, pero en la BD no veo que se cree el correlativo automáticamente... ¿esto es posible?

El segundo link ya lo había visto, pero corro el riesgo de perder de vista el último número correlativo dado a otro año... Upps, ¿me expliqué? Soy un poco mala para programar :(

Tomando como base el ejemplo de Neckkito (2º link), en el evento "Despues de actualizar" del campo [Año] de tu formulario, le pones este código (si no sabes, en el ejemplo te explica cómo):

Private Sub Año_AfterUpdate()
Dim vAutonum as Variant, vUltimo As Variant
vAutonum = Me.Numero.Value
If IsNull(Me.Año) Then Exit Sub
If Not IsNull(vAutonum) Then Exit Sub
vUltimo = DMax("[Numero]", "TDatos","[Año]=" & Me.Año)
If IsNull(vUltimo) Then
vUltimo = 0
End If
vAutonum = vUltimo + 1
Me.Numero.Value = vAutonum
End Sub

El código funciona de la siguiente manera:

1º/ En tu formulario introduces un año en el campo año.

2º/ Al salir del campo [año], se te genera el "autonumérico", si el campo [número] está vacío.

3º/ Si no pones año, no se genera "autonumérico", de la misma forma que si cambias el valor del año, el "autonumérico" tampoco se modifica.

Woowww!! Funcionó muy bien!! muchas gracias!!

Sólo un detalle más...

Yo estoy utilizando Access 2013 y me doy cuenta que tengo que comentar la instrucción "If IsNull(Me.Año) Then Exit Sub " porque Access me pone automáticamente "0" en el formulario cuando lo voy a llenar, entonces, supongo que en este caso ya no se cumple la condición... cierto?? O tengo alguna otra precaución que tomar?

Muchas gracias por tu respuesta!!

Descubrí que es un valor que se define en las propiedades del campo =P

Ya está!! mil gracias Sveinbjorn El Rojo

Independientemente de que ya le quitaste el valor predeterminado, podías cambiar la condición a esta:

If Nz(Me.Año,0)=0 Then Exit Sub

No te olvides de valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas