Access - No mostrar "Nuevo registro"

 
Vista:
sin imagen de perfil
Val: 24
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

No mostrar "Nuevo registro"

Publicado por david (17 intervenciones) el 19/08/2019 14:23:35
Buenas,

He puesto en un formulario con formato "hoja de datos" el típico botón "Nuevo registro" de forma que al hacer click se dibuja un nuevo registro en blanco para ir rellenandolo.

Adjunto una captura de pantalla

El caso es que SIN haber pulsado en ese boton de nuevo registro, el propio access coloca al final del listado de registros uno vacio (marcado con un asterisco) indicando que seria un nuevo registro preparado para rellenar (en mi caso seria necesario pulsar el boton "Editar" para desbloquear los campos y darles valores)

Ademas, si pulso nuevo registro y empiezo a rellenar ese ultimo resistro marcado con asterisco en cuanto relleno con algún valor cualquiera de sus campos, inmediatamente access me crea automaticamente un registro mas por el final marcandolo con el dichoso asterisco. Vamos, que le doy nuevo registro y en cuanto escribo algo parece que estoy creando 2 nuevos registros.

Mi pregunta es como puedo evitar que access me añada ese ultimo registro en blanco (el del asterisco) de manera automática. Simplemente me gustaría que apareciese ese registro al pulsar el boton "nuevo registro" y no antes.

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

No mostrar "Nuevo registro"

Publicado por Anonimo (3312 intervenciones) el 19/08/2019 16:19:10
En la vista diseño del formulario, pestaña FORMATO, la opción de 'permitir agregar' ¿como esta? ….
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
sin imagen de perfil
Val: 24
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

No mostrar "Nuevo registro"

Publicado por david (17 intervenciones) el 20/08/2019 09:46:24
Estuve haciendo unas pruebas. La opción que comentas la puse en NO permitir agregar datos.

Después asocié al boton "Nuevo" (al hacer click) la sentencia "Form_Ejecuccion.AllowAdditions = True" y al boton "Guardar" (al hacer click) la sentencia "Form_Ejecuccion.AllowAdditions = False"

En primer momento parece todo OK, si le das a nuevo registro, aparece un nuevo registro en blanco (marcado con el asterisco) para que lo rellenes. Una vez rellenado, cuando le das a guardar, se guarda y desaparece el registro vacío y el listado de registros queda mas "bonito" sin tener un ultimo en blanco con asterisco.

Pero aun así tengo un problema a resolver: despues de darle al boton NUEVO, en el momento que relleno un campo (el que sea) del nuevo registro que estoy creando, pues despues de dar valor a ese primer campo, me aparece a continuación UN REGISTRO MAS EN BLANCO.

Si no le haces caso y sigues rellenando los demás campos del anterior, al final le das a guardar y OK, lo unico que ese registro fantasma lleva a confusión a los usuarios.

ADjunto foto después de 1º princhar en nuevo 2º rellenar el campo fecha marcado con un rectángulo en rojo
rrrrr
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

No mostrar "Nuevo registro"

Publicado por Anonimo (3312 intervenciones) el 20/08/2019 15:01:45
Por mucho que se haga por diseño, si por VBA se da la contra-orden.... se vuelve al modelo original.

Yo (si desease ese efecto) lo haría de otra forma, añadiéndolo al RecordsetClone con un valor por defecto y regeneraría la presentación del formulario.

Con otra metodología (activar/desactivar la opción con VBA) la secuencia que podría resolver el problema es sencilla:
.- Se activa la opción (se supone que por diseño esta desactivada).
.- Se crea el registro (se le adjudica un valor y se guarda desde el mismo VBA)
.- Se desactiva la opción
.- Se envía el foco a este registro
.- se le pasa el control al usuario

Así se lograría lo mismo pero de forma transparente para el usuario.
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
sin imagen de perfil
Val: 24
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

No mostrar "Nuevo registro"

Publicado por david (17 intervenciones) el 21/08/2019 09:32:22
"
Con otra metodología (activar/desactivar la opción con VBA) la secuencia que podría resolver el problema es sencilla:
.1- Se activa la opción (se supone que por diseño esta desactivada).
.2- Se crea el registro (se le adjudica un valor y se guarda desde el mismo VBA)
.3- Se desactiva la opción
.4- Se envía el foco a este registro
.5- se le pasa el control al usuario
"
En el paso 1, entiendo que pinchando en el botón nuevo, activo la opción y aparece un registro en blanco.

el paso 2, no se me ilumina la bombilla. A que te refieres? disculpa mi torpeza :S
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

No mostrar "Nuevo registro"

Publicado por Anonimo (3312 intervenciones) el 21/08/2019 10:22:51
En el paso 1, entiendo que pinchando en el botón nuevo, activo la opción y aparece un registro en blanco.

No es correcto, aparecería al finalizar el código que se esta ejecutando en ese evento -no antes de finalizarlo- y si apareciese seria tan fugaz su presencia que el ojo no lo captaría porque en ese mismo evento se desactiva la opción (los eventos se ejecutan en microsegundos -aun con una maquina arcaica- lo que si le lleva tiempo es su representación grafica y/o el redibujado de la pantalla)

Paso dos:

Dependiendo de lo indispensable para crear un registro se genera uno

Normalmente Access no suele considerar 'registro' a un conjunto de datos en blanco y no lo guarda (algo que es configurable) si esa aplicación admite registros en esas condiciones pues se guarda y listo (se le augura un montón de 'paja inútil' a esa aplicación)

Si tiene un campo autonumerico (y le es suficiente para validarlo como registro), se guarda con ese único dato y …..

Si tiene campos requeridos, habría que darles un valor para que permita guardarlo …. se les da valor y …..

Esto es: se genera un registro según requiera esa aplicación en particular (todo desde y en el mismo evento) y se guarda con el método que se conozca y que funcione en/desde VBA

Guardado el registro se invalida la creación de registros (ya no aparecerá el 'nuevo registro para crear') y de ser necesario se envía el foco a ese nuevo registro (el ultimo, el de fecha de creación mas reciente … si tiene ID se habrá memorizado antes de guardarlo)

Al usuario le aparecerá un registro que no será nuevo (lo hemos creado de forma oculta) y que solo tiene que editar (aunque el tenga la sensación que lo esta creando desde cero).

Si no gusta el método, solo hay que utilizar otro que únicamente requiere conocer un poco mas como funciona Access a nivel interno para utilizar de forma optima los recursos disponibles (por ejemplo: el RecordsetClone del formulario)

Solo una nota aclarativa ...
Cualquiera de estos métodos GENERA un registro nuevo, si el usuario desea abortar la creación NO PODRA porque ya esta creado y en la tabla
Se tendrá que habilitar un botón (o un método de validación para el evento 'antes de actualizar') que lo borre de la tabla (ojo con los saltos en los campos autonumericos, fallo que también se daría en el aborto con cualquier metodo)

Access tiene programadas acciones que facilitan su uso, si no nos gustan … tendremos que hacer (crear las acciones) para hacer lo que el no hace como nos gusta (además de invalidar sus automatismos) y ello requiere tiempo y esfuerzo para obtener la recompensa buscada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

No mostrar "Nuevo registro"

Publicado por david (17 intervenciones) el 21/08/2019 11:46:03
ahora lo he pillado, eres un maestro

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