Access - ¿Cómo activar/desactivar con botones la opción de editar información de mi tabla desde formu

   
Vista:

¿Cómo activar/desactivar con botones la opción de editar información de mi tabla desde formu

Publicado por integro integro19@gmail.com (11 intervenciones) el 04/03/2014 15:30:16
Hola a todos!

Estoy haciendo una base de datos para un consultorio y me he topado con una gran interrogante, ya tengo la opción de permitir ediciones en NO, y he puesto un botón que me permite editar el contenido de mi tabla desde el formulario, pero el problema es que cuando presiono el botón y me deja editar, esa opción ya no se cierra, es decir, cada vez que busco otro registro en mi formulario este se puede editar también y lo pero de todo es que no necesito presionar el botón de guardar para que el contenido sea almacenado en mi tabla, simplemente con escribir algo en algún cuadro de texto esta información se actualiza en la tabla y esto es peligroso por algún mal click.

Debería tal vez colocar dos botones, uno que active la edición y otro que la desactive o posiblemente una casilla de verificación o botón alternar, la verdad estoy un poco perdido en este asunto.



Coloque esto en mi botón y me funciono muy bien, pero como les comento la edición queda abierta y de cualquier forma la información que se cambia se almacena en mi tabla sin necesidad de presionar el botón guardar:

Me.AllowEdits = True

Y luego pensé que al ponerlo en false funcionaria el desactivarlo pero no es así.



También probé con esta otra opción y me funciono bien también:

If AllowEdits = False Then
AllowEdits = True


Y de nuevo creí que al ponerlo a la inversa funcionario pero tampoco.


Les agradezco por el tiempo leyendo mi pregunta y de antemano gracias por su ayuda, saludos!
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
Imágen de perfil de Neckkito

¿Cómo activar/desactivar con botones la opción de editar información de mi tabla desde formu

Publicado por Neckkito (1104 intervenciones) el 16/03/2014 13:01:43
Hola!

Un par de cosillas antes de nada, para tu conocimiento.

El comportamiento predeterminado de Access es guardar automáticamente los registros. No necesitas, inicialmente, ningún botón de guardar. De hecho, si hay errores de entrada del usuario, aunque haya botón de guardar, si aquel no lo revisa te quedarán los errores igualmente.

Con los puntos 1 y 2 que te explico a continuación no hace falta el botón de guardar.

1- Para evitar ediciones de registro:

Tienes que sacar las propiedades del formulario e irte a la Pestaña Eventos -> Al activar registro, y le escribes este código:
...
Private Sub Form_Current()
Me.AllowEdits = False
End Sub
...

Con esto evitas que se editen los registros existentes.

2- Para activar la edición de un registro

En el botón que tienes para activar la edición pones lo que ya tienes, pero por seguridad te lo escribo:

...
Private Sub Comando11_Click()
Me.AllowEdits = True
End Sub
...

Supongamos que, por lo que sea, te interesa el botón de guardar. Voy a partir de que así es y de que existe ese botón.

En ese caso tenemos que cambiar la mecánica de todo el proceso. Vamos allá:

1.- En el módulo asociado al formulario, bajo la o las lineas de "Option", declaras esta variable privada:

...
Private guardado As Boolean
...

2.- En el evento "Al activar registro" del formulario le generas este código:

...
Private Sub Form_Current()
Me.AllowEdits = False
guardado = False
End Sub
...

3-En el evento de formulario "Antes de actualizar" le generas este código:

...
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Not Me.NewRecord Then
If guardado = False Then
MsgBox "Por favor, revise los cambios y guarde el registro", vbExclamation, "AVISO"
Cancel = True
End If
End If
End Sub
...

4- En el botón de guardar el registro le generas este código:

...
Private Sub nombreBoton_Click()
guardado = True
DoCmd.RunCommand acCmdSaveRecord
Me.AllowEdits = False
End Sub
...

Y con esto y un bizcocho... ;)

Saludos,

http://neckkito.siliconproject.com.ar
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