Access - Contador automático en formulario access

 
Vista:
sin imagen de perfil

Contador automático en formulario access

Publicado por Julio (1 intervención) el 26/11/2016 19:56:55
Buenas tardes,

Estoy haciendo una base de datos en la que tengo un formulario de autores, los cuáles tienen un campo [IDAutor] y otro [Nombre], el caso es que he puesto un código mediante el cuál cada vez que ponga un nombre de autor nuevo automáticamente le asigna un valor de [IDAutor], en éste caso son números enteros, si no hay ningún autor, le asigna el nº 1, si ya hay alguno metido le asigna el siguiente valor, el 2, 3, 4, el que toque.

Sin embargo, si yo elimino uno de los autores, por ejemplo el que tiene el id 2, cuando meto uno nuevo, me asigna el valor máximo + 1, si tenía 5 autores me asigna el número 6 y no el 2 que ha quedado libre al haber eliminado uno de los autores.

Lo que yo quiero, es que access mire primero si queda algún nº libre, si queda alguno libre quiero que lo asigne y si no que da ninguno en el rango de datos que tengo entonces en éste caso sí asigne el valor máximo + 1.

El código que tengo es el siguiente:
Private Sub Cuadro_combinado13_AfterUpdate()

If IsNull(Me.IDAutor) = True Then
If IsNull(DMax("[IDAutor]", "Autores") + 1) = True Then
Me.IDAutor = 1
Else
Me.IDAutor = DMax("[IDAutor]", "Autores") + 1
End If

End If

End Sub

¿A alguien se le ocurre cómo podría hacerlo?

Siento si me explico un poco mal.
Gracias y un saludo,
Julio
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
Imágen de perfil de jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Contador automático en formulario access

Publicado por jorge (304 intervenciones) el 26/11/2016 22:09:45
1
2
3
4
5
6
7
8
Dim MAXIMOAUTOR As Double
 
 
DoCmd.GoToRecord , , acNewRec
 
MAXIMOAUTOR = DMax(IDAutor, "Autores")
 
Me.IDAutor =MAXIMOAUTOR + 1
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