¿Autonumérico qué vuelva a cero todos los días?

¿Es posible crear un código que genere en un formulario un autonumérico que vuelva a cero o uno todo los días? Ejemplo. Si hoy cargo diez registros cada uno empezara con 1 hasta el 10, al día siguiente si cargo, empezara desde el uno. Y así todos los días que cargue algún registro empezara con el autonumérico en 1

2 respuestas

Respuesta
1

No dices como es el formulario, así que voy a suponer. Por otro lado, el campo no puede ser autonumérico, ya que por definición, un campo autonumérico no admite valores duplicados, es numérico no clave. Supongamos que tengo una tabla Tabla1 como en la imagen

Con ella hago un formulario continuo( ya que se ve mejor), al que le añado un cuadro de texto que va a mostrar la fecha del sistema( sólo sirve para que veas su valor). También le pongo los controles Idloquesea y Fecha como bloqueados. Cuando abro el formulario, como al principio está vacío)

A medida que voy rellenado en Idloquesea me va poniendo un valor correlativo y en el campo Fecha me va poniendo la del sistema.

Cuando cambia el día

Cuando otra vez cambie el día

Y así sucesivamente. En este caso el código del formulario es( te recuerdo que lo que está en negrita es sólo para que veas la fecha del sistema)

Private Sub Form_Current()
Uno.SetFocus
If Me.NewRecord And Date >= Nz(DMax("fecha", "tabla1")) Then
IdLoquesea = Nz(DMax("idloquesea", "tabla1", "fecha=date()")) + 1
Fecha = Date
End If
End Sub
Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
End Sub
Respuesta

Le presento otra forma pero controlando cuando ya estén los diez registros de la fecha.

Tabla

A la tabla le he configurado valor predeterminado la fecha del sistema.

Formulario

Tengo este formulario dependiente (que no es lo ideal) para registrar los movimientos y un subformulario donde me va mostrando los registros de la fecha.

Hago en en Agregar y registro el texto en el campo Algo y hago clic en Guardar. Ahora hago clic nuevamente en Agregar y obtengo:

Registro la información en el campo Algo. Ahora si hago cli en Agregar, obtengo el mensaje que ya están los 10 registros de la fecha.

Realmente hay varias formas de hacerlo personalmente prefiero con un formulario independiente en donde hay más control.

Código de los botones

Private Sub btnAgregar_Click()
  Dim control As Byte
  control = Nz(DMax("[consecutivo]", "tblalgo", "lafecha=date()")) + 1
 If control > 10 Then
   MsgBox "Ya están los 10 registros del día", vbInformation, "Le cuento"
   Me.Undo
   Exit Sub
 Else
   DoCmd.RunCommand acCmdRecordsGoToNew
   Me.consecutivo = control
 End If
End Sub
Private Sub btnGuardar_Click()
  DoCmd.RunCommand acCmdSaveRecord
  Me.frmSubalgo.Form.Requery
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas