Ocultar columna en un subformulario

Quisiera saber si hay la posibilidad de ocultar una columna en un subformulario en vista de hoja de datos y que la misma este disponible y mostrar según el valor de un cuadro de texto en el formulario principal el origen del subformulario es una consulta. Como por ejemplo se hace a nivel de diseño en vista de formulario

1 respuesta

Respuesta
2

Hay varias formas. Como no sé como tienes construido el formulario vamos a suponer que tienes un cuadro de texto llamado Turno. Supongamos que el subformulario tiene una columna Peso. En el evento después de actualizar del cuadro de texto Turno puedes poner

If turno= loquesea then

Me.nombredelsubform.Form.Peso.ColumnWidth = 0

end if

Así, si en el cuadro de texto pusieras un valor y se cumpliera la condición de verdadero, te ocultaría la columna Peso.

Hay más formas, pero, como te decía, habría que saber como tienes construido el formulario.

Buenas tardes, disculpa no haber contestado o valorado la respuesta antes pero estuve fuera del trabajo y esta semana estoy retomando lo de la programación, la instrucción que me indicas me funciona eso cuando la columna es parte de un campo en una de las tablas pero tengo algunas columnas que son creadas en una consulta y me dice que el objeto no admite esta propiedad, no se si es posible hacerlo   

No entiendo eso de una columna es creada en una consulta. En un formulario, aunque sea en hoja de datos, no hay columnas, hay cuadros de texto "apilados". Por lo que para referirse a una columna hay que hacer mención al lo que aparece en las propiedades del cuadro de texto-solapa Otras-Nombre.

Tengo un formulario Clientes en vista hoja de datos y tengo un cuadro de texto independiente, que se llama texto9

Y un formulario con ese subformulario

Como puedes ver el campo texto9 se ve. En el evento despues de actualizar del cuadro de texto de arriba que se llama(propiedades-otras-nombre= Algo le he puesto

If Algo = 5 Then
Me.Clientes.Form.texto9.ColumnWidth = 0
End If

 y el resultado

Que como puedes observar el campo texto9 no se ve

Buenas tardes Icue y disculpa que no haya sido constante al momento de recibir tus respuestas, en este momento he retomado el caso para solucionar y partiendo del ejemplo que me publicaste me funciona pero creo que el planteamiento inicial era si se podía ocultar la información del cuadro de texto, la situación es que necesito jugar con esta propiedad mostrando y ocultando algunos cuadros de texto pero no se como mostrar o activar el texto para lo que he colocado la propiedad en 1 y no me funciona

Private Sub Form_Load()

Me.CREDITOS_MES_SUB.Form.IntUnMes.ColumnWidth = 0
Me.CREDITOS_MES_SUB.Form.MontTotMes.ColumnWidth = 0

'End Sub

Private Sub BUSCAR_Click()

FiltroFechas = "[FECHA_CRED] BETWEEN #" & Format(Nz(Me.[FECHA_INI], #1/1/1900#), "mm/dd/yyyy") & _
"# AND #" & Format(Nz(Me.[FECHA_FIN], #12/31/9999#), "mm/dd/yyyy") & "#"
Me.CREDITOS_MES_SUB.Form.Filter = FiltroFechas
Me.CREDITOS_MES_SUB.Form.FilterOn = True

If FILTRO.Value = 1 Then


Me.CREDITOS_MES_SUB.Form.TotalCred.ColumnWidth = 0
Me.CREDITOS_MES_SUB.Form.MONTO_INT.ColumnWidth = 0
Me.CREDITOS_MES_SUB.Form.IntUnMes.ColumnWidth = 1
Me.CREDITOS_MES_SUB.Form.MontTotMes.ColumnWidth = 1
End If

If FILTRO.Value = "P" Then

Me.CREDITOS_MES_SUB.Form.IntUnMes.ColumnWidth = 0
Me.CREDITOS_MES_SUB.Form.MontTotMes.ColumnWidth = 0

Me.CREDITOS_MES_SUB.Form.TotalCred.ColumnWidth = 1
Me.CREDITOS_MES_SUB.Form.MONTO_INT.ColumnWidth = 1
End If

 Aca estoy colocando el código involucrado. Al dar clic oculta los textos pero no me muestra los otros   

El código apenas lo he mirado pero al ponerle

..., columnwidth=1 le estás diciendo que la columna OCUPE apenas una milésima de milímetro y es difícil, por lo menos a mi me sucede, que puedas distinguirlo. En realidad le estás diciendo que su ancho sea de 1 twip. En código de VB si quieres que un control tenga 5 cm de anchura tienes que decirle columnwidth=5*567

567 son los twips que hay en un centímetro

Buenos días Icue le he colocado valores a la propiedad .ColumnWidth y no me funciono pero lo hice de esta forma

If FILTRO.Value = 1 Then


Me.CREDITOS_MES_SUB.Form.TotalCred.ColumnWidth = 0
Me.CREDITOS_MES_SUB.Form.MONTO_INT.ColumnWidth = 0
Me.CREDITOS_MES_SUB.Form.IntUnMes.ColumnHidden = False
Me.CREDITOS_MES_SUB.Form.MontTotMes.ColumnHidden = False
End If

If FILTRO.Value = "P" Then

Me.CREDITOS_MES_SUB.Form.IntUnMes.ColumnWidth = 0
Me.CREDITOS_MES_SUB.Form.MontTotMes.ColumnWidth = 0
Me.CREDITOS_MES_SUB.Form.TotalCred.ColumnHidden = False
Me.CREDITOS_MES_SUB.Form.MONTO_INT.ColumnHidden = False
End If

Y me muestra lo que necesito muy agradecido por tu colaboración

Si te funciona, perfecto.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas