** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - No permitir mostrar columnas en subform hoja datos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoNo permitir mostrar columnas en subform hoja datos

 Responder Responder
Autor
Mensaje
paloma Ver desplegable
Habitual
Habitual


Unido: 24/Junio/2010
Estado: Sin conexión
Puntos: 69
Enlace directo a este mensaje Tema: No permitir mostrar columnas en subform hoja datos
    Enviado: 14/Septiembre/2023 a las 23:26


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,
Arriba
paloma Ver desplegable
Habitual
Habitual


Unido: 24/Junio/2010
Estado: Sin conexión
Puntos: 69
Enlace directo a este mensaje Enviado: 15/Septiembre/2023 a las 01:15

joe qué tonta, le paso al bucle de los controles del subformulario un ctl.ControlSource = "" y ya no aparecen #Nombre si las muestro.

Además he puesto en los controles, un formato condicional que  .ControlSource ="" los bloqueo, de tal forma que se visualizan con el tono típico de bloqueo, distinguiéndose mejor. En fin. Esto me vale osea que pueden cerrar el hilo :)

Saluditos.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable