Hacer editable o no editable form con boton

Dos cuestiones realtivas a la opción de editar de un form.
1-Formulario con encabezado:
Hacer editable los campos del encabezado (sólo un cuadro combinado indpte.), y no editable los campos del detalle.
2-Formulario único:
Necesito ver de que manera puedo poner un botón de alternar para que permita editar o no editar todos los campos que lo contienen.

1 respuesta

Respuesta
1
Inserta un grupo de opciones con dos botones de opción. En la propiedad valor de la opción de cada botón tienes que poner 1 y 2 respectivamente para que cuando pinches en uno se desactive el otro. Luego en el evento click del grupo de opciones escribes :
If me.grupoopcion.value=1 then
me.allowedits=true
else
me.allowedits=false
end if
¿A qué te refieres con hacer editable un cc indpte?
Para editar un form puedes poner en el evento click del botón:
If Me.AllowEdits=True then
Me.AllowEdits=False
else
Me.AllowEdits=True
end if
Me refiero a hacer editable el solo los campos del encabezado del form, pero no el detalle para que no me lo toquen, eso en cuanto al primer caso.
En el segundo caso que planteo, es la solución que escribes la que me vale, pero funciona a medias. Apretó el botón y me edita, pero después al apretarlo de nuevo quiero que no edite, pero eso ya no lo hace.
¿Podría ser con un botón de opción o de alternar? Creo que es diferente.
Gracias
Yo he probado el código que te envíe y si funciona, comprueba la sintaxis.
Podrías hacerlo con el botón de opción:
If boton.value=1 then
me.allowedits=true
else
me.allowedits=false
end if
En el caso del detalle tendrás que hacerlo en el control que quieres proteger. Si es un cc en la propiedad limitar a la lista, en caso de un cuadro de texto en bloqueado
Chico no hay forma, estoy convencido de que algo hago mal, porque tu solución es evidentemente válida, pero no doy con el tema. No es cosa de sintaxis, te resumo a ver que opinas:
Pongo en el form un b.opción(bo).En sus ppiedades, eventos, al hacer click ponglo lo que me dices:
If Opción68.Value = 1 Then
Me.AllowEdits = True
Else
Me.AllowEdits = False
End If
Pero luego en la practica o no me hace nada cuando lo pincho (lo activo y lo desactivo pero nada), o después de ir a vista diseño y volver se bloquean todos los campos incluso el bo, sin poderlo cambiar.
Tengo la sensación de que alguna propiedad del form interfiere.
Con lo fácil que parece oye!
Dime algo por favor.
Creo que ya se lo que pasa: mira esta nota de la ayuda del VB para "allowedits"
"Nota: Cuando se establece el argumento Modo de datos de la acción AbrirFormulario, Microsoft Access anula un número determinado de valores de propiedades del formulario. Si el argumento Modo de datos de la acción AbrirFormulario está establecido a Editar, Microsoft Access abrirá el formulario con los siguientes valores de las propiedades:
PermitirEdiciones (AllowEdits) - Sí
PermitirEliminación (AllowDeletions) - Sí
PermitirAgregar (AllowAdditions) - Sí
EntradaDeDatos (DataEntry) - No
Para evitar que la acción AbrirFormulario anule alguno de estos valores de propiedad existentes, omita el valor del argumento Modo de datos, de tal forma que Microsoft Access use los valores de las propiedades definidos por el formulario."
Y es que el formulario me lo abría un botón que determinaba la propiedad "editable", creo que es eso, no hay otra explicación! ¿No crees?
Nada que no funciona esto, no lo entiendo. Al final optaré por el camino largo y haré esto:
if boton = true then
campo1.locked = true
campo2.locked = true
.....
else
campo1.locked = false
campo2.locked = false
....
end if
Esto sí me funciona pero tela porque hay 50 campos.
Por ultimo, ¿hay alguna manera de enumerar los campos y cambiarles una sola propiedad en común a todos a la vez? Algo así como :
Campo1,campo2.....campo3.loked = false
Con tu contestación cerrare la preguntita porque.. ya está bien! :)
Gracias de nuevo
Ok, lo probare solo ya por curiosidad, gracias por tu paciencia, realmente me has ayudado mucho.
Seguro que tendré más cuestiones próximamente así es que seguro que nos seguiremos escribiendo.
Muy agradecido
No creo que sea esto, es la manera en que abres el formulario, pero luego puedes cambiar el modo por código.
Prueba con un me. Requery después de cambiar el allowedits.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas