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,