Access - bloquear todos los registros menos el nuevo

 
Vista:

bloquear todos los registros menos el nuevo

Publicado por henry (1 intervención) el 22/04/2020 23:35:31
Buenas tardes
tengo un boton en el formulario

1
2
3
Private Sub AGREGAR_Click()
   DoCmd.GoToRecord , , acNewRec
endsub

Deseo "bloquear el registro nuevo", osea que cuando este digitando los datos del nuevo registro, no pueda desplazarme por los demas registros del formulario
gracias
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
sin imagen de perfil
Val: 507
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

bloquear todos los registros menos el nuevo

Publicado por miguel (248 intervenciones) el 23/04/2020 21:36:01
para que no se puedan desplazar a otro registro que no sea el que se esta creando tienes modificar las propiedades del formulario que utilizas para crear los registros, tienes que poner la propiedad permitir ediciones en NO, permitir eliminacion en NO, de esta forma te permite agregar nuevo registro pero no deja desplazarse por los que hay.
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

bloquear todos los registros menos el nuevo

Publicado por Henry (4 intervenciones) el 25/04/2020 16:18:02
Así están las propiedades del formulario, Miguel, creo que la solución es mas complicada y supongo que debe ser en código, de todos modos 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

bloquear todos los registros menos el nuevo

Publicado por Anonimo (1790 intervenciones) el 26/04/2020 00:01:40
si aceptamos esto como la necesidad:

…. osea que cuando este digitando los datos del nuevo registro, no pueda desplazarme por los demás …

Lo que se esta haciendo es bloquear al registro actual (no permitir salir de el) y eso se puede hacer si se evalúa en el evento 'antes de actualizar' si se dan las condiciones para salir (porque si no se sale en algún momento …. puede quedar el programa bloqueado en ese formulario).

Una de las opciones utilizadas, consiste en consultar la variable 'Dirty' que indica si hubo cambios en el formulario.

De no haberlos (un registro que no se pretendía crear pero se entro por error, un registro que se visualizo y no se modifico …) se sale y punto final.

Si se efectuó una modificación solo quedarían dos posibles opciones:

Una es desmontar las modificaciones (con ello nos ponemos en el punto anterior, pues no se formalizaron los cambios)

Otra es guardarlos (si se dan las circunstancias, esto es: se tienen todos los campos que estén declarados como 'requeridos') al guardar los cambios se da por supuesto que ya se puede salir sin romper nada.
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

bloquear todos los registros menos el nuevo

Publicado por henry (4 intervenciones) el 26/04/2020 03:37:46
<< porque si no se sale en algún momento …. puede quedar el programa bloqueado en ese formulario).>> no es el caso ya que el registro es nuevo y tengo la posibilidad de dar clic en el boton guardar o en el boton deshacer o en muy extremo el boton cerra formulario de todos modos muy buenos esos tips pero obvio que los tengo pero como usted mismo dice en el boton modificar, en ese no tengo problema que bloqueo ese registro que ya existe y asi poder hacer la novedad ya que hago un filtro de ese registro, no pasa lo mismo con un registro nuevo al que no existe, si no que hasta ahora lo estoy creando, desafortunadamente a un registro nuevo no puedo bloquear, toca es que no me deje navegar por los otros registros o algo por el estilo.
gracias anonimo
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

bloquear todos los registros menos el nuevo

Publicado por Anonimo (1790 intervenciones) el 26/04/2020 08:38:55
No parece que tengamos el mismo concepto de como funcionan las cosas ….

En fin, si lo que se desea saber (para hacer lo que se pretenda) es saber si el actual registro 'es nuevo' es lo mas sencillo del mundo:

Un NUEVO registro en un formulario tendrá activada la propiedad 'NEWRECORD' mientras no se guarde esto es:

Mientras el registro este en pleno proceso de introducción de datos que le permitan ser considerado un registro -pues mientras 'no cumpla las condiciones' no permitirá guardarlo- y considerarlo 'un registro mas'


Y un formulario …. solo tiene un registro real, el resto son ilusión óptica, para 'ir a otro registro' (de ese mismo formulario) es indispensable salir del actual, algo que se cumple para los nonatos, los viejos y los nuevos,

(NOTA: se entiende y mas cómoda la lectura si se utiliza 'de vez en cuando' la tecla Enter, eso hace mas claras las exposiciones)
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

bloquear todos los registros menos el nuevo

Publicado por Henry (4 intervenciones) el 27/04/2020 06:01:08
Gracias por su aporte, pero de nada me sirve, ANÓNIMO
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

bloquear todos los registros menos el nuevo

Publicado por Anonimo (1790 intervenciones) el 27/04/2020 10:04:47
Solo se necesita una tecla del ordenador: F1

Una vez en la ayuda de Access se localiza 'orden de los eventos' y tras analizar con tranquilidad y releer tantas veces como sea necesario, se aplica las conclusiones.

No entiendo la falta de objetividad en sus respuestas ….

Cuando aparece el temido momento 'de ir de paseo por los registros' intervienen los EVENTOS en un determinado Y FORZADO orden, en el evento adecuado un simple:

1
IF Me.NewRecord Then Exit Sub

O la opción (de disponerla el evento) de

1
Me.Cancel = Me.NewRecord

Seria suficiente para mantenerse en el registro y si ya se dispone de un 'botón guardar'

.- se aplica
.- el registro se guarda
.- la propiedad 'newrecord' se pone a false
.- y …
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

bloquear todos los registros menos el nuevo

Publicado por Henry (4 intervenciones) el 01/05/2020 19:41:17
Anónimo: Muchas gracias, no se de que país eres, pero mi país necesita gente así como usted que no se derrota y toma las cosas como un líder, empujando a otros a seguir adelante, a no quedarse a tras, a dar la batalla, y si dije algo que no debía fue por instinto de protección, pero la verdad ayuda mucho, y si, no era tan difícil era leer y no solo dar F1 si no que ahora también existe el profe google.
y con ganas y empeño lo resolví y no era tan del otro mundo sabe, inspirado por usted ano mimo fue muy fácil muchas gracias.

en el formulario principal inicializo una variable nuevo en cero
y en el botón guardar la actualizo nuevo a cero

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Current()
     If nuevo = 1 Then
              "no se desplace a otros registros"
               DoCmd.GoToRecord acDataForm, "hoja1", acGoTo, ActualRegistro
     End If
end sub
 
Private Sub AGREGAR_Click() 'boton que cree para agregar registros
DoCmd.GoToRecord , , acNewRec
ActualRegistro = Me.CurrentRecord
nuevo= 1
end sub

PD:. en realidad no es un bloqueo sino que no dejo que se desplace a otros registros
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