Campo autonumérico y cíclico en formulario access

Hola, vuelvo a molestarte. Estoy buscando hacer que un campo numérico aparezca como autonumérico. Hasta ese punto he llegado con éxito usando el siguiente código:
Private Sub Form_Current()
If Me.NewRecord Then
Me.Control = Nz(DMax("Campo","tabla_dos"),0) +1
End If
End Sub
Ahora bien, la idea que tengo, y que preciso, es lograr que al llegar al 10, el campo vuelva a tomar el valor 1, y así infinitamente.
Intenté hacerlo agregándole al codigo anterior :
    If Me.beneficiar = 11 Then
    Me.beneficiar = 1
    End If
Pero claro, descubrí que si tiene como origen el campo de la tabla directamente siempre va a estar el 10, y al crear el 11 vuelve necesariamente al 1, sí, pero no sale de ahí. Es decir, después de agregar 10 registros todos los demás son el numero 1.
La ayuda que tengo pero que no se como utilizar, es el id de la tabla_dos. Debido a que en un formulario anterior he cargado datos que están relacionados con los de este formulario mediante numero donde id. Tabla_uno = id. Tabla_dos
Gracias

1 respuesta

Respuesta
1
Estuve mirando lo que estás precisando y entiendo que es algo como un autonumérico de 10 en 10 tal como me lo explicaste, entonces es necesario generar un número que vaya agregando automáticamente teniendo en cuenta el límite superior y el inferior del número "n". Yo lo hice tomando en cuenta múltiplos de 10 que es lo que necesitás, más o menos así:
'----------------------------------------------
Dim mult As Double, sum As Double
Dim contador As Integer
Dim mult_anterior As Integer
Dim mult_actual As Integer
'verificar si es un registro nuevo para hacer el resto
If Me.NewRecord Then
contador = DCount("nombre_campo", "nombre_tabla")
contador = contador + 1
'aqui defino que sum es 0 y mult es 10    
sum = 0: mult = 10
mult_actual = sum + mult 'empieza con 10
mult_anterior = sum 'empieza con 0
'hacer hasta que el contador de registros esté entre los límites, por ejemplo 11 entre 10 y 20
Do Until contador < mult_actual And contador > mult_anterior
    If contador <= mult_actual Then
        Me.control = contador - mult_anterior
        Exit Sub
    End If
    mult_actual = mult_actual + 10
    mult_anterior = mult_anterior + 10
'vuelve a comenzar el bucle de verificación pero con otros límites hasta que contador quede entre los límites
Loop
Me.control = contador - mult_anterior
DoCmd.Save acForm, "MiFormulario"
End If
'--------------------------------------------------
Espero que te sirva, podes agregarlo tanto a un evento click o al evento current de un form.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas