Access - HACER CONTADOR EN ACCESS

 
Vista:

HACER CONTADOR EN ACCESS

Publicado por vannakos (4 intervenciones) el 26/02/2008 13:37:55
Hola!

Mi problema es el siguiente:

Tengo una tabla en la cual quiero llevar el número de personas que puede entrar, es decir, no quiero que haya más de 30 personas en dicha tabla. Bien, quiero conseguir que a la hora de darle a un botón de añadir en un formulario, si ya hay 30 metidos, salte un msgbox diciendo que no se puede añadir.

¿Alguien puede ayudarme?

Muchas gracias de antemano
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

RE:HACER CONTADOR EN ACCESS

Publicado por Enrique (1299 intervenciones) el 26/02/2008 20:16:19
Hola:
Con este Evento, cuando intentes escribir algo en cualquier campo del Registro nº 31, te salta el mensaje de error y no te deja seguir. No necesita botón de añadir, pero ya sería cuestión de que intentes adaptarlo.

Private Sub Form_BeforeInsert(Cancel As Integer)
If Me.RecordsetClone.RecordCount >= 30 Then
MsgBox "No se pueden introducir más de 30 registros.", vbCritical, " A v i s o "
DoCmd.GoToRecord , , acPrevious
Exit Sub
End If
End Sub

Saludos
Enrique
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

RE:HACER CONTADOR EN ACCESS

Publicado por vannakos (4 intervenciones) el 27/02/2008 12:54:26
Hola de nuevo, aún tengo dudas porque no se donde colocarlo, ya que no hace lo que me comentas, en cuanto paso al registro 31 si me deja escribir. Y cuando lo modifico un poco para ver y consigo adaptarlo al boton me salta un mensaje comentandome que no esta relacionado a ninguna macro, y la verdad, eso me pierde bastante.

¿Podrías darme alguna información más como por ejemplo donde colocar el evento para ver que funcione y luego empezar a trabajar desde ahí en un terreno fijo y no arenoso como me encuentro en estos momentos?

Muchas gracias
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

RE:HACER CONTADOR EN ACCESS

Publicado por Enrique (1299 intervenciones) el 27/02/2008 18:43:52
Parece que lo que te pasa es debido a que has copiado el Evento que te puse y lo has pegado, pero no se ha conectado con la propìedad "Antes de actualizar" del Formulario, te lo explico con más detalle:

Primero elimina todo lo que hayas hecho y vuelve a empezar de cero, o sea, borra el Evento del editor de VBA.
Abre el Formulario en Modo Diseño, entra en sus Propiedades y busca la Propiedad "Antes de actualizar", mete el cursor dentro y a la derecha aparece un pequeño Cuadro Combinado, ábrelo y selecciona [Procedimiento de evento] y pulsa el otro botón más a la derecha que tiene unos puntos ( ... ). Entrarás en la Ventana del Editor de VBA y aparecerá esto:

Private Sub Form_BeforeInsert(Cancel As Integer)

End Sub

Ahora copia de mi Evento solo esto:

If Me.RecordsetClone.RecordCount >= 30 Then
MsgBox "No se pueden introducir más de 30 registros.", vbCritical, " A v i s o "
DoCmd.GoToRecord , , acPrevious
Exit Sub
End If

y lo pegas entre Private Sub Form_BeforeInsert........... y End Sub, sales del diseño, grabas los cambios y prueba ahora. Deberá saltar el mensaje cuando intentes escribir algo el cualquier campo del registro nº 31 y al Aceptar, el cursor deberá volverse al registro nº 30.
Si te funciona, me lo dices y te indicaré como adaptarlo a un botón de comando.

Saludos
Enrique
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

RE:HACER CONTADOR EN ACCESS

Publicado por vannakos (4 intervenciones) el 28/02/2008 08:40:03
Muchas gracias!! Si me funciona. Pero no me ha salido la opcion de "Antes de actualizar" en el cuadro propiedades, asi que unicamente he dado al boton derecho de del ratón sobre el formulario y he usado el generador de eventos pegando lo que me has comentado.

Espero pues como asignarlo al boton.

MUCHISIMAS GRACIAS
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

RE:HACER CONTADOR EN ACCESS

Publicado por Enrique (1299 intervenciones) el 28/02/2008 12:39:27
El Evento no era "Antes de actualizar" sino "Antes de Insertar", me equivoqué. Para asignarlo a un botón de comando, la forma cambia algo porque además del propio botón hay que controlar tambien que no se puedan insertar más registros de los deseados al cambiar de registro mediante los botones de desplazamiento (los botoncitos que hay abajo del todo en los formularios), así como al salir del último campo del formulario si estamos en el registro 30, que tampoco pueda saltar al 31. Se necesitan estos tres Eventos:

'EVENTO CLICK DE UN BOTON DE NOMBRE "SIGUIENTE"
Private Sub Siguiente_Click()
LimitaReg
End Sub

'EVENTO AL ACTIVAR REGISTRO
Private Sub Form_Current()
If Me.NewRecord Then
LimitaReg
DoCmd.GoToRecord , , acPrevious
Else
Exit Sub
End If
End Sub

'EVENTO PERSONALIZADO AL QUE SE LLAMA DESDE LOS OTROS DOS
Private Sub LimitaReg()
If Me.CurrentRecord < 30 Then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNext
Else
MsgBox "No pueden introducir más de 30 registros.", vbCritical, " A v i s o "
PrimerCampo.SetFocus
Exit Sub
End If
End Sub

Debajo del MsgBox verás que pongo PrimerCampo.SetFocus. Esto es para que después de que salga el aviso, el Foco se vaya al primer campo del formulario y no se quede el cursor "perdido" (o sea, el foco en ningún control).

Saludos
Enrique
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

RE:HACER CONTADOR EN ACCESS

Publicado por Vannakos (4 intervenciones) el 28/02/2008 15:17:29
Muchas gracias!!! Me ha sido de grandisima utilidad ya que no sabia como manejar el asunto.

Ya funciona todo a las mil maravillas
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