
Bloqueo de filas de un form mostrado en formato DataSheet (Hoja de datos)
Publicado por Juan (9 intervenciones) el 06/03/2014 13:03:08
Estoy desarrollando un formulario donde me muestre la información de una tabla y me permita editar cambios en los datos de esta. Esta funcionalidad me la da directamente el Accesss.
Además, deseo añadir una funcionalidad que impida la edición de los campos de ciertos registros de esta tabla (pej: Los creados el año pasado).
Hasta ahora lo he resuelto añadiendo el siguiente código de evento al Form:
Como veis, la función FuncionDeterminarBloqueo() me indica si debo bloquear o no la fila en curso del Formulario.
Las dos ultimas filas me permite bloquear/desbloquear los campos del Datasheet de la fila en curso. Este método me obliga a indicar en código cada una de las columnas del DataSheet.
Las preguntas son:
1.- ¿Hay alguna manera más directa de bloquear todos los campos de la fila ?
2.- Si lo anterior no es posible, y con objeto de evitar tener que indicar por código cada uno de los campos. ¿Existe alguna manera de escribir un bucle que me permita recorrer los campos del DataSheet, y aplique la propiedad Locked a todos los campos de la fila en curso?
Gracias
Además, deseo añadir una funcionalidad que impida la edición de los campos de ciertos registros de esta tabla (pej: Los creados el año pasado).
Hasta ahora lo he resuelto añadiendo el siguiente código de evento al Form:
1
2
3
4
5
6
7
8
9
10
11
Private Sub Form_Current()
Dim Bloquear As Boolean 'Variable intermedia para facilitar la lectura del código
'Recojo el valor (true/false) del campo de control de bloqueo
Bloquear = FuncionDeterminarBloqueo() 'TRUE=> Sí Bloquear; FALSE=> No Bloquear
'Bloquear/desbloquear los campos del registro en curso
Me.Fx_inicio.Locked = Bloquear
Me.Fx_fin.Locked = Bloquear
End Sub
Como veis, la función FuncionDeterminarBloqueo() me indica si debo bloquear o no la fila en curso del Formulario.
Las dos ultimas filas me permite bloquear/desbloquear los campos del Datasheet de la fila en curso. Este método me obliga a indicar en código cada una de las columnas del DataSheet.
Las preguntas son:
1.- ¿Hay alguna manera más directa de bloquear todos los campos de la fila ?
2.- Si lo anterior no es posible, y con objeto de evitar tener que indicar por código cada uno de los campos. ¿Existe alguna manera de escribir un bucle que me permita recorrer los campos del DataSheet, y aplique la propiedad Locked a todos los campos de la fila en curso?
Gracias
Valora esta pregunta


0