Access - Como Bloqueo Registros en Formularios???

 
Vista:

Como Bloqueo Registros en Formularios???

Publicado por Gema (2 intervenciones) el 27/03/2006 15:25:10
Una vez creado un formulario para la introduccion de datos quiero que al abrirlo, este bloqueado y solo se pueda consultar los datos mediante un cuadro combinado y que al pulsar un boton de comando desbloquee el formulario para introducir o modificar datos. Al pasar a otro registro se bloqueara automaticamente.
Que evento incluyo en el formulario? que evento incluyo en el boton de comando?
muchas gracias.
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

RE:Como Bloqueo Registros en Formularios???

Publicado por Enrique (1299 intervenciones) el 27/03/2006 18:04:09
Hola Gema:
Esto que preguntas en principio puede parecer fácil de hacer, bastaría con poner la propiedad Locked del Formulario a True para bloquear todos los controles del formulario, pero entonces bloqueas tambien el Cuadro Combinado y el Botón de Comando y entiendo que solo quieres bloquear los cuadros de texto. Tambien se podría usar la misma propiedad (Locked) de cada cuadro de texto, poniéndolos a True (bloqueados) en el Evento Form_Load y en el Evento Form_Current y a False (desbloqueados) al pulsar el botón de comando, pero en este caso tienes que hacerlo en cada uno de ellos tanto para bloquear como para desbloquear y si son muchos es un royazo, aunque existe una solución más fácil y con mucho menos código que lo anterior. Prueba a hacer esto:

Dim Campos As Object ' Esto en la Sección de Declaraciones (arriba del todo)

'Al cargar el Formulario Bloquea todos los cuadros de texto
Private Sub Form_Load()
For Each Campos In Me.Controls
If TypeOf Campos Is TextBox Then
Campos.Enabled = False
End If
Next Campos
End Sub

'Al cambiar de registro tambien los bloquea todos
Private Sub Form_Current()
Form_Load
End Sub

'Al pulsar el botón de comando los desbloquea todos
Private Sub Boton_Click()
For Each Campos In Me.Controls
If TypeOf Campos Is TextBox Then
Campos.Enabled = True
End If
Next Campos
End Sub

Espero que te sirva.
Saludos
Enrique
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

RE:Como Bloqueo Registros en Formularios???

Publicado por Gema (2 intervenciones) el 28/03/2006 15:42:17
Muchas Gracias Enrique:
Al realizar lo que me acosejas consigo bloquear los cuadros de texto, pero al pulsar el boton de comando no desbloquea los registros. Por otro lado los cuadros de texto al estar bloqueados se vuelven grises al igual que los textos que contienen. No se si hay alguna manera de que conserven su color original.

Por otra parte, dentro del formulario, aparte del boton de cuadro combinado que tengo para seleccionar el registro deseado (el cual hemos dejado desbloqueado) tambien tengo dos cuadros combinados para seleccionar unos datos como el codigo postal (por ejemplo para que aparezca automaticamente la poblacion y provincia). Estos cuadros no se bloquean ya que le hemos dicho que solo se bloqueen los cuadros de texto.
Alguna sugerencia.??? Muchas gracias.
(perdona por no poner acentos pero tengo rota la tecla)
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

RE:Como Bloqueo Registros en Formularios???

Publicado por Enrique (1299 intervenciones) el 28/03/2006 18:35:52
Hola Gema, para que los cuadros de texto no "se vuelvan grises" como tu dices, tienes que hacer unos pequeños cambios y usar Locked en lugar de Enabled, pero cambiando False por True en el Form_Load y True por False en el Boton_Click, tal como te lo pongo aquí :

Option Compare Database
Dim Campos As Object
Option Explicit 'ESTA LINEA ES NECESARIO INCLUIRLA

Private Sub Form_Load()
For Each Campos In Me.Controls
If TypeOf Campos Is TextBox Or TypeOf Campos Is ComboBox Then
Campos.Locked = True
End If
Next Campos
Combo1.Locked = False 'Combo1 es el Cuadro Comb. que NO debe bloquearse
End Sub

Private Sub Form_Current()
Form_Load
End Sub

Private Sub Boton_Click()
For Each Campos In Me.Controls
If TypeOf Campos Is TextBox Or TypeOf Campos Is ComboBox Then
Campos.Locked = False
End If
Next Campos
End Sub

Fíjate que "Al Cargar" bloqueamos todos los TextBox y todos los ComboBox del formulario y seguidamente desbloqueamos el único Cuadro Combinado que debe permaneces activo siempre. En el Evento Form_Load sustituye Combo1 por el nombre del Cuadro Combinado que usas para seleccionar el registro.

Ahora ya debería de funcionarte sin problemas.
Saludos
Enrique
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

RE:Como Bloqueo Registros en Formularios???

Publicado por Héctor (11 intervenciones) el 16/12/2015 10:15:26
Buenas, primero gracias por este hilo. me ha ayudado mucho. Una pregunta referente a lo que estais tratando: Cómo se hace para que sean varios los campos que no se bloqueen? 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

RE:Como Bloqueo Registros en Formularios???

Publicado por yuri (1 intervención) el 22/05/2016 01:19:11
Buenas Tardes:

Tengo la siguiente consulta tengo un formulario de consulta que quiero que estén bloqueados todos los campos excepto uno pero que ese una vez se ingresen datos quede bloqueado y si se vuelve a consultar ese registro se encuentre bloqueado que ese dato no se pueda modificar por nada del mundo

Agradezco me puedo ayudar con este tema
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

RE:Como Bloqueo Registros en Formularios???

Publicado por Enrique Heliodoro (1664 intervenciones) el 22/05/2016 19:19:45
Añadir una pregunta en un hilo que tiene diez años de antigüedad y con cero respuestas a una pregunta añadida hace un año, debería hacer pensar si tiene sentido utilizar el hilo para hacer nuevas consultas ....

Inicia un hilo y aporta mas datos, por ejemplo:
.- El contenido del objeto cuando 'aun no tiene nuevos datos'
.- El contenido que tendrá cuando 'se le aporten datos'

Si se sabe diferenciar con exactitud el antes y el después, se tiene una referencia valida para ejecuta una acción que puede ser utilizada en un único punto o en dos (dependiendo de lo 'instantáneo' que se necesite ese bloqueo).
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: 36
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

RE:Como Bloqueo Registros en Formularios???

Publicado por Antonio (16 intervenciones) el 31/03/2017 17:14:11
Hola Enrique, he utilizado tu código en una Base de Datos que estoy construyendo y me funciona genial. Te lo agradezco, porque llevaba tiempo buscando como solucionar el problema del bloqueo y al no saber código estaba dando muchísimos tumbos.

Para terminar de niquelar mi formularío tengo un problema, y es que, también quisiera bloquear tres cuadros combinados del mismo formulario. ¿podrías ayudarme para hacer esto?.
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: 36
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

RE:Como Bloqueo Registros en Formularios???

Publicado por Antonio (16 intervenciones) el 03/04/2017 21:13:36
Mil perdones Enrique. No me había dado cuenta de que ya habías respondido.
Gracias de nuevo.
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

RE:Como Bloqueo Registros en Formularios???

Publicado por luis Fernandez (4 intervenciones) el 28/09/2019 13:12:51
Hola todo esto que hablan no bloquea registros, ni campos, bloquea controles y formularios.
Los registros activos en un formulario ya están bloqueados(dependiendo el tipo de bloqueo de la base de datos)
Normalmente están sin bloquear, pero recomiendo siempre poner bloqueo por registros en las propiedades de la base de datos.
Entonces desde el momento que un usuario comienza a modificar un campo ya esta bloqueado para otros usuarios dura hasta que se mueva a otro registro.
Tratemos de hablar/Escribir con propiedad y darle a los objetos sus nombres correctos para no confundir a los que buscan información
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