Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Se desactiva permitir ediciones

46 views
Skip to first unread message

phelix69

unread,
Jun 15, 2008, 5:06:00 PM6/15/08
to
Hola a todos espero que me puedan ayudar ya que estoy atascado.

Tengo un formulario en el que no se permiten ediciones. El problema es que
cuando paso campo por campo por un registro, se cambia automáticamente a
permitir ediciones. He comprobado que eso pasa cuando tengo metido este
código al recibir el foco en un campo:

Private Sub NIF_GotFocus()
Me.CODIGO_POSTAL = PERCEPTOR.Column(3)
Me.NIF = PERCEPTOR.Column(2)
End Sub

De nuevo gracias por su ayuda.

CarCar

unread,
Jun 16, 2008, 6:24:54 AM6/16/08
to
Hola:

Lo que es seguro es que, ese código, nada tiene que ver con que se
cambie automáticamente a permitir ediciones.

Saludos,
CarCar (desde Tenerife, España)
MVP Access

phelix69

unread,
Jun 16, 2008, 9:10:01 AM6/16/08
to
Sí, CarCar estoy contigo pero si a este codigo le pongo un apostrofe para que
no se ejecute no cambia el permitir ediciones.

Gracias por tu respuesta

"CarCar" escribió:

Patxi Sanz

unread,
Jun 16, 2008, 11:17:47 AM6/16/08
to
Permitir ediciones implica que no se pueda modificar el contenido de ningún
campo, pero con ese código estás modificando el contenido de los campos NIF
y CODIGO_POSTAL, lo que es contrario al tener la propiedad Permitir
ediciones a No.

Si quieres modificar esos campos, pero mantener el bloqueo en la edición,
tal vez te sea más sencillo activar la propiedad Bloqueado de los cuadros de
texto, combinados y listas.

--
Un saludo,


Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
http://es.geocities.com/patxisanz/index.html
Tudela (NA)

phelix69

unread,
Jun 16, 2008, 1:30:01 PM6/16/08
to

Gracias Patxi, gracias a tu respuesta y después de darle algunas vueltas lo
he conseguido.

Si la propiedad Permitir ediciones se cambia porque estoy modificando los
campos NIF y CODIGO_POSTAL, lo que he hecho es en el cuadro combinado meter
el codigo "al cambiar", es decir que si no cambio el cuadro combinado no se
ejecuta el codigo y por lo tanto no se cambia la propiedad permitir ediciones.

un saludo y gracias


"Patxi Sanz" escribió:

CarCar

unread,
Jun 16, 2008, 4:15:20 PM6/16/08
to
Hola:

Si has resuelto tu problema ¡perfecto!.

Pero insisto en que, esas instrucciones, no modifican la propiedad
permitir ediciones.

Saludos,
CarCar (desde Tenerife, España)
MVP Access

Patxi Sanz

unread,
Jun 17, 2008, 2:38:15 PM6/17/08
to
Pues yo pensaba lo mismo que tú hasta que he hecho la prueba:

- Un formulario con cuadros de texto, cuyo origen son campos de una tabla.
- El formulario, tiene a No la propiedad Permitir Ediciones.
- En el evento Al recibir el enfoque de un control, un poco de código para
modificar el valor de un cuadro de texto que muestra el valor de un campo de
esa tabla.
- Y cuando se ejecuta el formulario y me posiciono en ese control, se
modifica la propiedad Permitir Ediciones a Sí.

Supongo que la razón es la que indiqué antes: si tenemos código para
modificar directamente un valor en un control que tiene como origen un campo
de una tabla, Access, en vez de quejarse diciendo que no se puede modificar
el valor, cambia la propiedad Permitir Ediciones a Sí y ejecuta el código,
cambiando el valor.

CarCar

unread,
Jun 17, 2008, 3:51:22 PM6/17/08
to
Hola:

=8-O
=8-O
=8-O
=8-O
=8-O
=8-O
...
=8-O
=8-O
=8-O

Gracias por la información, nunca se me hubiera ocurrido hacer la
prueba.

Saludos admirativos,


CarCar (desde Tenerife, España)
MVP Access

On 17 jun, 19:38, "Patxi Sanz" <patxisanz[ARROBA]yahoo[PUNTO]es>
wrote:

phelix69

unread,
Jun 17, 2008, 4:46:01 PM6/17/08
to
Puff... menos mal creía que me estaba volviendo loco...

Ya solo por curiosidad. Como vuelvo a poner el formulario en solo lectura?

Gracias

"CarCar" escribió:

CarCar

unread,
Jun 17, 2008, 4:55:42 PM6/17/08
to
Hola:

Me.AllowEdits = False

En el evento adecuado. No se si funcionará en el propio que tienes
ahora.

Saludos,


CarCar (desde Tenerife, España)
MVP Access

Patxi Sanz

unread,
Jun 18, 2008, 12:08:27 PM6/18/08
to
Y a mí, nunca se me habría ocurrido que Access fuera capaz de hacer algo así
;-)

--
Un saludo,


Patxi Sanz

Patxi Sanz

unread,
Jun 18, 2008, 12:11:32 PM6/18/08
to
Por si acaso, y como modificas el registro, acuérdate de guardarlo antes de
usar el código indicado por CarCar. Porque viendo como trabaja Access en
este caso, es capaz de deshacer los cambios al modificar la propiedad :-$

Puedes usar DoCmd.RunCommand acCmdSaveRecord para guardar el registro
modificado.

--
Un saludo,


Patxi Sanz

phelix69

unread,
Jun 19, 2008, 5:12:01 PM6/19/08
to

Para seguir indagando un poco más en el tema, he probado lo que me habeis
dicho, es decir, grabar y luego volver a solo lectura y me da el siguiente
mensaje:

Se ha producido el error 2046 en tiempo de ejecución: La acción o comando
GuardarRegistro no esta disponible ahora.

Saludos

"Patxi Sanz" escribió:

Patxi Sanz

unread,
Jun 20, 2008, 12:24:29 PM6/20/08
to
Como ya conocemos esta particularidad de Access, podemos jugar con la
propiedad AllowEdits (permitir ediciones), para "permitir" a nuestro código
modificar los registros, con lo que Access ya nos dejará guardar el
registro. Y por último, volvemos a desactivar la edición de registros, para
que el usuario no note nada y le parezca que no ha "ocurrido nada":

Private Sub NIF_GotFocus()
'Activamos el poder editar los datos de los campos
Me.AllowEdits = True

'Modificamos los campos necesarios


Me.CODIGO_POSTAL = PERCEPTOR.Column(3)
Me.NIF = PERCEPTOR.Column(2)

'Guardamos el registro
DoCmd.RunCommand acCmdSaveRecord

'Y volvemos a desactivar la edición
Me.AllowEdits = False
End Sub

phelix69

unread,
Jun 20, 2008, 1:17:03 PM6/20/08
to

Contestación simple pero inteligente. Gracias Patxi, un placer.

"Patxi Sanz" escribió:

phelix69

unread,
Jun 20, 2008, 2:13:01 PM6/20/08
to

Supongo que este tema te estará cansando... pero al probarlo creo que no me
ha funcionado. Porque funciona cuando estas pasando por los campos para
verlos hasta ahi bien. El problema es cuando agregas un registro. Cuando pasa
el codigo, vuelve a modo solo lectura y hay más campos que rellenar y no te
deja.

No te quiero cansar más y comprendería que no respondieras. De todas formas,
mil gracias.

"Patxi Sanz" escribió:

Patxi Sanz

unread,
Jun 20, 2008, 3:00:12 PM6/20/08
to
Alternativas, tienes varias:

- La propiedad NewRecord del formulario devuelve True cuando el registro es
nuevo.
- El evento Después de Insertar se desencadena tras crear un nuevo registro.
- El evento Después de Actualizar se desencadena tras guardar un registro.

Ahora, todo es cuestión de comprobar la propiedad, o activar una variable
creada en el módulo del formulario, para que si estás en un registro nuevo,
no se cambie la propiedad AllowEdits hasta que termines de crear el nuevo
registro.

0 new messages