Cómo seleccionar en formulario un grupo de columnas específicas.

Tengo una BD en Access con un formulario en el que se registra de manera general el proceso de los contratos y suplementos. Necesito una forma de seleccionar o filtrar (no sé si es correcto como lo planteo) entre Suplementos y Contratos. Que cuando yo vaya a trabajar Contratos marque algo y solo me cargue el grupo de campos requerido y de igual forma que cuando seleccione Suplementos me cargue todos los que tienen que ver con los suplementos. Yo supongo que usando un filtro se logre esto pero no sé como hacerlo.

1 respuesta

Respuesta
1

Si los datos que los diferencian (formar parte del grupo de contratos o del de suplementos) se logra en base a uno de los campos del registro, la solución es sencilla con un click se puede aplicar el filtro adecuado (click par muestra un tipo, click impar el otro).

Si el cambio implica utilizar diferentes elementos del mismo registro (pongamos que en un caso sean la tercera y cuarta columnas y en el otro la sexta y octava) también se podría hacer (se cambiaria el origen de datos para los cuadro s de texto).

Si las diferencias son grandes, lo mas practico es crear dos formularos específicos y alternarlos (visualizar uno / ocultar el otro y viceversa).

Me interesa esta parte de tu respuesta: Si el cambio implica utilizar diferentes elementos del mismo registro (pongamos que en un caso sean la tercera y cuarta columnas y en el otro la sexta y octava) también se podría hacer (se cambiaría el origen de datos para los cuadro es de texto).

¿Cómo hago el cambio de origen de datos para los cuadros de texto?

Respecto a la primera parte de tu respuesta supongo te refieres a poner por ejemplo el cursor sobre el campo que define CONTRATOS, en este caso es C y hacer clic derecho y optar por cualquiera de los filtros que se muestran. Si es eso estoy claro de ello y lo he hecho para visualizar solo C o S (Contratos o Suplementos) según me convenga. Ahora lo que necesito es lo segundo que solo se vean las columnas que me interesan para cada caso.

Aquí te mando una imagen del formulario. Por favor a partir de el explícame donde se hace ese cambio de origen de datos para los cuadros de texto. Como ves hay un campo C/S que define si ese documento es contrato o suplemento. Quiero al filtrar todo como C que solo queden a la vista un grupo de columnas y cuando seleccione en el filtro ES tenga un comportamiento similar pero con otras columnas según convenga.

Por partes para no mezclar las respuestas.

A un cuadro de texto se le puede modificar en tiempo de ejecución su origen de datos, el sustituto tiene que ser de su misma categoría (no se pueden cambiar un cuadro de texto y un combo) .

El botón esta en el formulario principal, los cambios se hacen en el subformulario (solo para mostrar las posibilidades), con cada pulsación en el botón, se intercambia el contenido de las columnas (es un formulario continuo).

Private Sub btnCambiar_Click()
With Me.Gastos.Form.Controls
If .Item("Tipo").ControlSource = "Valor" Then
   .Item("Tipo").ControlSource = "Tipo"
   .Item("Valor").ControlSource = "Valor"
    Else
   .Item("Tipo").ControlSource = "Valor"
   .Item("Valor").ControlSource = "Tipo"
   End If
End With
End Sub

Como respuesta a un evento Click se pueden hacer muchas cosas por ejemplo alternar el filtro, en la practica para conmutar entre Contratos y Suplementos se puede hacer así:

Me.Filter = IIf(Me.Filter = "C/S = 'C'", "C/S = 'S'", "C/S = 'C'"): Me.FilterOn = True

Se puede manipular objetos (siempre dentro de su sección), pero cambiar las cosas de sitio puede despistar al usuario (que espera un emergente o cambio de pantalla para interactuar con el).

Nada impide redimensiona controles y desplazarlos u ocultarlos, un control tiene una ubicación definida por sus coordenadas X e Y (Left / Top), su longitud y altura también son accesibles y modificables.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas