Access - Bloquear un solo registro en subformulario

 
Vista:
sin imagen de perfil

Bloquear un solo registro en subformulario

Publicado por Luis (32 intervenciones) el 10/11/2022 01:00:48
Buenas noches, saludos, tengo un formulario con un subformulario de despacho de productos (Guia de despacho), al llenar el subformulario con varias facturas hay un campo llamado estatus el cual se debe modificar entre las opciones (Despachado, Entregado y devuelto) lo que quiero es que una vez sea entregada la factura y se modifique este campo estatus a ENTREGADO se bloquee solo el registro donde estoy parado y que los demas sigan igual:



Captura-de-pantalla-2022-11-09-195906

Solo quiero bloquear el registro una vez cambie a entregado, los demas registros deberian quedar desbloqueados esperando a que el estatus cambie.

No se si con formato condicional se pueda hacer.

Agradezco la ayudad de la comunidad, Gracias


Ojo: No quiero que se bloquee el subform completo, solo el registro, agradezco la ayuda.
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

Bloquear un solo registro en subformulario

Publicado por Anonimo (3316 intervenciones) el 10/11/2022 05:12:41
Habra que utilizar el evento 'al cambiar de registro'(Current) y en el se bloquea al registro activo (de hecho es el unico real que existe).

En ese evento (y con cada campo que se desee bloquear)
1
2
3
Me.[nombre del campo1].Enabled = Me.Estatus <> "Entregado"
Me.[nombre del campo2].Enabled = Me.Estatus <> "Entregado"
.......

Otra opcion es evaluar la condicion una vez y aplicarla:
1
2
3
4
5
Dim Activar As Boolean
Activar = Me.Estatus <> "Entregado"
Me.[nombre del campo1].Enabled = Activar
Me.[nombre del campo2].Enabled = Activar
.......
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

Bloquear un solo registro en subformulario

Publicado por Luis (32 intervenciones) el 10/11/2022 11:03:15
Excelente, gracias, creo que de esta 2 forma puedo resolver pero tengo una duda mas, es posible agregar algun codigo para corregir el error Uso no valido de Null?? ya que cuado paso a un registro nuevo me da este error...



Quedo atento
Captura-de-pantalla-2022-11-10-060303
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

Bloquear un solo registro en subformulario

Publicado por Anonimo (3316 intervenciones) el 10/11/2022 14:29:21
Creo que la funcion Nz seria adecuada para solucionarlo:

1
Activar = Nz(Me.Estatus,"") <> "Entregado"

La funcion Nz evaluara al campo y devolvera una cadena vacia en lugar del valor NULL, una cadena de texto vacia es diferente de 'entregado' por lo cual retornara un TRUE.


Otra alternativa es verificar si es un nuevo registro y de serlo no evaluar nada (no me queda claro el caso de provenir de un registro con el valor 'entregado')

1
2
3
4
5
6
IF Me.NewRecord Then exit Sub
Dim Activar As Boolean
Activar = Me.Estatus <> "Entregado"
Me.[nombre del campo1].Enabled = Activar
Me.[nombre del campo2].Enabled = Activar
.......

Una alternativa si se diera ese caso:

1
2
3
4
5
6
7
8
9
Dim Activar As Boolean
IF Me.NewRecord Then
    Activar =True
    Ese
    Activar = Me.Estatus <> "Entregado"
    End IF
Me.[nombre del campo1].Enabled = Activar
Me.[nombre del campo2].Enabled = Activar
.......

Si se resuelve con Nz, no complicaría lo que en esencia es sencillo.
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

Bloquear un solo registro en subformulario

Publicado por Luis (32 intervenciones) el 11/11/2022 11:04:42
Gracias por sus respuestas, hoy hago las pruebas.
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