¿Cómo puedo hacer para que no se vean las entradas ya registradas en Microsoft Access?

Te explico tengo un formulario para que se introduzcan las incidencias con unos clientes.
Yo he echo un botón llamado nuevo registro para que así al principio le muestre todos los datos rellenos con el primer registro sin que tenga el avanzado y retroceso de registro. Aunque me acabo de dar cuenta que con la rula del ratón si pueden avanzar por los registros. ¿Cómo puedo hacer para que no se vean las ya registradas? ¿Y cómo puedo hacer para que si no le dan al botón nuevo registro que se supone que graba la incidencia, no se grabe dicho registro?
Es decir ellos empiezan a introducir datos y por causas ajenas se salen y sin guardar cambios pues access automaticante se los cambia, pues yo no quiero que haga eso.

4 Respuestas

Respuesta
1
Tendrías que revisar el código correspondiente del evento unload de la forma en la que estas trabajando, ahora con respecto a como bloquear los movimientos de avance tendrías que checar el evento keypress de la misma forma para que detectes que tecleas o funciones esta utilizando el usuario,
e-mail: [email protected]
Respuesta
1
Tienes un método muy sencillo para evitar estos errores de edición, en diseño del form y en el evento Al activar registro le pones:
With Form
.AllowEdits = False
End With
Con lo cual ahora tendremos que añadir un botón de comando que nos pase el Permitir ediciones a True en caso de que el usuario necesite modificar el registro:
Private Sub AllowEdit_Click()
With AllowEdit
AllowEdits = True
End With
End Sub
NOTA: puedes usar otros métodos con las propiedades Activado, Bloqueado, etc.
Respuesta
1
La única que se me ocurre para que al usar la rueda del mouse no cambie de registro es filtrando, es decir, puedes generar algún consecutivo o utilizar alguna variable existente en el formulario y decirle que filtre por ese valor, de esa forma el número total de registros es 1 o los que cumplan el criterio, para ello puedes agregar el siguiente código puede ser en el botón:
Dim SQL
me.filtroon=false
sql="[Consecutivo] = 5"
me.filtro = sql
me.filtroon = true
Para que no grabe un registro a menos que opriman el botón busca el evento "Antes de actualizar" DEL FORMULARIO. Allí puedes escribir lo siguiente:
cancel= true
Esto cancela la entrada del registro, de forma que la única manera de grabar es con el botón.
Espero estas guías generales te sirvan, si necesitas algo más específico vuelves a preguntar.
Gajimenb
Yo tengo un campo autonumérico. ¿Podría poner por hay el filtro? ¿Cómo?
Podrías construir el filtro obteniendo un valor del autonumérico por ejemplo así
Dim SQL, Valor
Valor=DMax("[Consecutivo]", "Tabla") 'Lo cual obtiene el máximo valor del autonumérico y luego
me.filtroon=false
sql="[Consecutivo] =" & valor ""
me.filtro = sql
me.filtroon = true
A ver si te funciona...
Respuesta
1
Para salir sin grabar:
En las propiedades del formulario quita el botón de cerrar el formulario.
Inserta un botón para salir grababando ( ACEPTAR ) y otro para salir descartando cambios ( CANCELAR ). En el evento al hacer click de "ACEPTAR" inserta el siguiente código:
DoCmd. RunCommand acCmdSaveRecord
DoCmd. Close
En el evento al hace click de "CANCELAR" inserta el siguiente código:
DoCmd. RunCommand acCmdUndo
DoCmd. Close
Para abrir un formulario con un sólo registro, sin que salgan todos, ponle una condición en la apertura del formulario, es decir, en el botón que abre el formulario, edita el código del evento, y modifica la instrucción openform, como en el siguiente ejemplo:
DoCmd.OpenForm "Incidencia", , , "NumIncidencia=1"
( Esto abre el formulario con la incidencia nº 1, sin salir todas ).
DoCmd. OpenForm "Incidencia",,,, acFormAdd
( Esto te abre el formulario en blanco, para insertar una incidencia ).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas