Como generar un numero consecutivo en un formulario access

Tengo un formulario con varios campos, uno de ellos se llama numero. El cual esta con esta mascara de entrada 9999999" "999999", deseo programarlo. Si el numero es de 7 dígitos que ingrese el numero según requiera, y si el numero es de 6 dígitos que genere el numero consecutivo automático.

Actualmente creamos el numero de 6 dígitos por otro lado, quisiera programarlo de forma consecutiva y automática.

Solo para el de 6 dígitos, el otro no tiene importancia porque se crea de otra red.

1 respuesta

Respuesta

¿El consecutivo a cual? Si, por ejemplo, escribo 123456, ¿debería poner 1234561? ¿Y en el siguiente 1234562? ¿O sí escribo 222222 debe convertirlo en 222223?

perdon, seria asi.

Como ya hemos avanzado el año, seria así.

Manejo dos tipos de numero uno con 7 y el otro con 6 dígitos, pensé en colocar dos botones de selección,

Uno se llamaría red y el otro automático.

Si selecciono red entonces me deje colocar el numero que ya tengo creado por otro lado.

Si selecciono automático, que genere el numero automático de 6 dígitos empezando de 200200. Cada vez que el usuario ingrese los datos con este botón pues iría corriendo 200200, 200201, 200202 y así sucesivamente.

Si cambio de año osea entonces que inicie con 210000, durante ese año entonces los registros irían 210001, 210002 y así sucesivamente.

Si fuese el siguiente año pues iniciaría con 220000, con el mismo comoportamiento anterior.

Por ultimo en el menu principal hay un botón que se llama agenda, cuando lo selecciono abre el formulario con los campos a llenar para agendar, entre ellos que menciono arriba.

¿Este botón como podría programarlo para que se active en un tiempo determinado?

Es decir, que se active de lunes a viernes desde las 8 am hasta las 5.pm, fuera de ese horario que permanezca inactivo. Osea fuera de ese horario quien quiera agendar no va a poder, porque debe esperar al que el botón se active dentro del horario mencionado.

Agradezco su orientación.

Vamos a ver si me explico. Primero, el campo Numero tiene que ser texto longitud 7.

En el formulario le añado un combinado, llamado Elegir, donde elijo si es Red o automático. Si está elegido Red, cuando pongas el cursor en el cuadro de texto Nombrecliente del formulario(ya que no sabía en que evento lo quieres poner), el campo Numero te queda vacío para que le pongas el número que quieras.

Si por el contrario has elegido Automático cuando el cursor lo pongas en NombreCliente te va rellenando el campo Numero. Mientras esté en 2020, el formato será 200200, como decías, y se va incrementando en 1 sucesivamente. Cuando se produzca el cambio de año(señalado con una flecha, automáticamente te lo pone en formato 210000, 210001, etc.

El código del evento Al recibir el enfoque del cuadro de texto Nombrecliente es

Private Sub NombreCliente_GotFocus()
If Me.NewRecord Then
If Elegir = "red" Then
Numero = ""
ElseIf Elegir = "Automático" Then
    If Year(Date) = 2020 Then
    Numero = Right(Year(Date), 2) & "" & Format(Nz(DCount("*", "otra", "left([numero],2)=right(year(date()),2)")), "0200")
    Else
    Numero = Right(Year(Date), 2) & "" & Format(Nz(DCount("*", "otra", "left([numero],2)=right(year(Date()),2)")), "0000")
    End If
End If
End If
End Sub

Lo de If me.newrecord, es para evitar que si pusieras el cursor en un registro que ya tiene número, no te ponga uno nuevo, y lo de year(date()) es porque parece ser que ya tienes registros, ya que empiezas en 200200

Buen dia, he colocado el codigo tal cual lo describe, creo algo hago mal pq no funciona.

Asi coloque el codigo con los nombres reales de cada campo. probe colocando el enfoque directo en el numero no me funciono, lo deje como me lo envio y tampoco.

para esto cree la tabla para traer el combinado con los nombres sap y manual, donde sap es el que pongo y el manual el que se cree automatico.

en el diseño de la  tabla modifique el campo numero de op a texto pues lo tenia en numero. lo hice segun su primer indicacion.

Private Sub NOMBRE_DEL_PRODUCTO_GotFocus()
If Me.NewRecord Then
If NROOP = "SAP" Then
NUMERO_DE_OP = ""
ElseIf NROOP = "MANUAL" Then
    If Year(Date) = 2020 Then
    NUMERO_DE_OP = Right(Year(Date), 2) & "" & Format(Nz(DCount("*", "otra", "left([NUMERO_DE_OP],2)=right(year(date()),2)")), "0200")
    Else
    NUMERO_DE_OP = Right(Year(Date), 2) & "" & Format(Nz(DCount("*", "otra", "left([NUMERO_DE_OP],2)=right(year(Date()),2)")), "0000")
    End If
End If
End If
End Sub


aqui tengo señalado el campo manual y al escribir en el nombre no se crea el numero.

agradezco su orientacion, revise todo lo que creo q se, pero no logre hacer funcionar el codigo

Mándame un mensaje(sólo el mensaje) a [email protected] y te mando el ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Ed Het, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas