Access - Desactivar campos en un formulario

 
Vista:
sin imagen de perfil

Desactivar campos en un formulario

Publicado por Alejandro (9 intervenciones) el 17/01/2017 18:54:20
Que tal de nuevo aquí con una mega duda. En esta ocasión requiero ayuda para hacer lo siguiente: manejo 3 opciones una lista desplegable (1.- Servicios, 2.- Servicios (obra) y 3.- Obra), el formulario que ya está hecho tiene 60 campos de opción SI/NO, necesito que al elegir, digamos Servicios (obra) en la lista desplegable, se desactiven los campos que no apliquen a esa opción en el formulario y que cada vez que haya un registro nuevo no provoque error. Cabe mencionar que cada opción tiene un aproximado de 20 o 30 campos que si aplican y 30 que no aplican, es decir, si elegimos la opción Servicios solo aplicaran 27 campos que son los que yo quiero que se activen y los demás que no apliquen se desactiven, ésto también quisiera que se reflejara en el informe pero que los campos que no apliquen se pongan en color diferente a los que si aplican

De antemano les agradezco la ayuda...saludos
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
Imágen de perfil de Angel Jesús
Val: 121
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar campos en un formulario

Publicado por Angel Jesús (61 intervenciones) el 17/01/2017 21:10:11
Hola Alejandro, yo no soy un experto pero he logrado hacer algo similar a lo que tu quieres pero te ayude a hacerlo bien y si no te de un empujo para poder lograrlo.

yo utilizo este código, el cual lo puedes poner en el campo, en la opción al actualizar y por cierto todos los campos devén tener la característica "hibilitado" en no.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
If Me.#campo# = 1 Then
Me.#campo#.Enabled = True
Me.#campo#.Enabled = True
Me.#campo#.Enabled = True
Me.#campo#.Enabled = True
Me.#campo#.Enabled = False
Me.#campo#.Enabled = False
Me.#campo#.Enabled = False
Me.#campo#.Enabled = False
Else:
	If Me.#campo# = 2 Then
	Me.#campo#.Enabled = True
	Me.#campo#.Enabled = True
	Me.#campo#.Enabled = True
	Me.#campo#.Enabled = True
	Me.#campo#.Enabled = False
	Me.#campo#.Enabled = False
	Me.#campo#.Enabled = False
	Me.#campo#.Enabled = False
	Else:
		If Me.#campo# = 3 Then
		Me.#campo#.Enabled = True
		Me.#campo#.Enabled = True
		Me.#campo#.Enabled = True
		Me.#campo#.Enabled = True
		Me.#campo#.Enabled = False
		Me.#campo#.Enabled = False
		Me.#campo#.Enabled = False
		Me.#campo#.Enabled = False
	End If
	End If
End If
Exit Sub

Recuerda cambiar la parte que esta entre gatos (#) por el nombre del campo que le corresponda.
espero te sirva y buena suerte con tu proyecto.
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

Desactivar campos en un formulario

Publicado por Alejandro (9 intervenciones) el 18/01/2017 19:08:42
Muchas gracias Angel Jesus es más o menos como lo habia imaginado ahora la pregunta del millón este código lo voy a poner en el cuadro lista donde se van a escoger las 3 opciones ó dentro del código del formulario o donde? Ésto que me escribiste me va a ayudar mucho. Ah otra cosa a la hora de imprimir un informe de este formulario se podrá que los campos inhabilitados aparezcan en color gris? saludos y de nuevo muchas 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
sin imagen de perfil

Desactivar campos en un formulario

Publicado por Alejandro (9 intervenciones) el 18/01/2017 22:01:22
Traté de hacerlo como me dijiste y quedó asi (imagen listado-1)
listado-1

al momento de correr el formulario y elegir una opción e marca este error (imagen mensaje de error)
mensaje-de-error

Le doy un click en DEPURAR y me manda de nuevo al listado pero me marca en amarillo la primera línea. Te dejo la imagen del cuadro de opciones y parte del formulario para que más o menos te des una idea
cuadro-de-opciones

Espero tu respuesta 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
Imágen de perfil de Angel Jesús
Val: 121
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar campos en un formulario

Publicado por Angel Jesús (61 intervenciones) el 19/01/2017 21:36:20
Hola Alejandro

EL código lo debes poner en el evento después de actualizar, de la lista desplegable o en el evento al hacer click, de un botón.

Ahora con lo de respecto a la depuración. Te pregunto como esta el origen de fila.
Porque si en origen de fila no cuenta con un campo ID que identifique a cada aspecto por el numero (1, 2 o 3) no va funcionar, a lo cual tendrías que hacer un cambio en el código Y cambiar los números por los nombre de cada aspecto, o ponerle el numero.

espero mí explicación te funcione y buena suerte
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

Desactivar campos en un formulario

Publicado por Alejandro (9 intervenciones) el 19/01/2017 22:59:05
QUE TAL ANGEL JESUS EL ORIGEN DE LA FILA COMO TU LO LLAMAS QUIERO CREER QUE ES LA LISTA DE OPCIONES, SI ES ASI, TE COMENTO QUE CADA OPCIÓN TRAE NÚMERO, ES DECIR, 1. Servicios, 2. Servicios por concurso y 3. Obra. SI PUDIERAS HACER DE PERDIDO EL PRIMERO DONDE ME MARCA EL ERROR EN COLOR AMARILLO PARA BASARME EN LOS OTROS 2, LOS NOMBRES DE LOS CAMPOS COMO LOS TENGO DADOS DE ALTA EN LA TABLA SON TAL CUAL COMO APARECEN EN LA IMAGEN (I.1, I.2, I.3, ETC), 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
Imágen de perfil de Angel Jesús
Val: 121
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar campos en un formulario

Publicado por Angel Jesús (61 intervenciones) el 20/01/2017 03:30:11
Hola Alejandro. espero esto resuelva el problema, pero ya me estoy preocupan y no por otra razón que porque el problema se que yo soy aficionando y mucho no se, pero aun así te dejo una de las ultimas ideas de las que se me ocurre.
El código que daría mas o menos así, según mi sabiduría:

1
2
3
4
5
6
7
8
9
10
11
12
13
If Me.1._Servicios = 1 Then
Me.I.2.Enabld = False
Me.I.5.Enabld = False
Me.I.7.Enabld = False
Me.I.8.Enabld = False
Me.I.9.Enabld = False
Me.I.10.Enabld = False
Me.III.1.Enabld = False
Me.III.2.Enabld = False
Me.III.3.Enabld = False
Me.III.4.Enabld = False
Me.III.6.Enabld = False
Me.III.7.Enabld = False

Según lo que entiendo por las imágenes y mi poca experiencia, así debería quedar una parte de la primera opció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
Imágen de perfil de jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar campos en un formulario

Publicado por jorge (304 intervenciones) el 25/01/2017 01:56:36
Hola Alejandro aqui te dejoo un ejemoplo sencillo de lo que deseas hacer solo para ti seria un codigo mas grande saludos.
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

Desactivar campos en un formulario

Publicado por Alejandro (9 intervenciones) el 26/01/2017 19:15:22
Que tal Jorge gracias por enviarme el ejemplo fijate que de ahi puedo partir para comentarte lo que quiero hacer en mi sistema. Tú pusiste una lista de 3 nombres (LUIS, PEDRO Y SERGIO) y 3 campos con casilla de verificación (ELIMINAR PADRES, ELIMINAR TUTORES Y HERRAMIENTAS), vamos a decir que escojo a PEDRO pero cuando yo lo escojo se deben deshabilitar los campos ELIMINAR PADRES Y HERRAMIENTAS y solo activar ELIMINAR TUTORES para que yo pueda capturar solo ese campo y los otros 2 yo no pueda palomearlos, esa acción es la que quiero hacer en mi sistema quiero escoger una opción y que solo se activen los campos que apliquen para esa opción y el resto que se queden en gris como deshabilitados y cuando halla un nuevo registro vuelva a esperar a que yo escoja otra opción para saber cuales son los campos que va a desactivar...saludos
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