|
Hola buenas.
En un subformulario hoja de datos, dependiendo de la consulta desde un combo del formulario principal, visualizo o no las columnas del subformulario. Pero como este subformulario tiene muchos controles, de varias tablas, yo lo que quiero es que no se pueda mostrar columnas que no están dentro del origen de registros del subformulario para evitar el odioso #Nombre.
Sí que se pueda ocultar/mostrar las columnas que sí están dentro del origen de registros porque devolverán algún valor. Vale, eso sí. Pero no veo forma de "bloquear" la visualización de determinadas columnas que están fuera de la consulta.
Esto es lo que hago, pongo un ejemplo porque mi código es muy largo. Había pensado que poniendo ColumnWidth = 0 en las columnas que no me interesan, si luego con el botón derecho le doy a mostrar, no se mostrarían porque las he dejado peladas de espacio. Pero nada, siguen saliendo. De hecho, la propiedad ColumnWidth pasa de mí por completo. Dim ctl As Control For Each ctl In Me.subform.Form.Section(acDetail).Controls Select Case ctl.ControlType Case acTextBox If ctl.Name <> "Nombre" And _ ctl.Name <> "Apellido1" And _ ctl.Name <> "Apellido2" Then ctl.ColumnHidden = True ctl.ColumnWidth = 0 Else ctl.ColumnHidden = False If ctl.Name = "Nombre" Then ctl.ColumnOrder = 1 If ctl.Name = "Apellido1" Then ctl.ColumnOrder = 2 If ctl.Name = "Apellido2" Then ctl.ColumnOrder = 3 End If End Select Next
¿Alguna ideita?
Gracias,
Saludos,
|