Matrices de Controles!

En VB hay matrices de controles y en VBA no.
¿Alguna alternativa para este problema?
Debo llevar el control de vacaciones.
Tengo 30 cuadros de textos vinculados a un campo en una tabla. (TxtDia1 hasta txtDia30)
Como le puedo hacer para que, de acuerdo a POR días que le correspondan pueda insertar esos registros en los cuadros de texto correspondientes(Si toma 5.. Que aparezca del 1 ~ 5, pero si ya había tomado 5 antes, que aparezca del 6 al 11) y habilitar el control (. Enabled)
He intentado con algo así:
For I = varDiasTomados To tmpDiasTomados
Dia = "txtDia" & CStr(I) 'Aparece "txtDia1, txtDia2, txtDia3...."
Hay alguna manera de que con el valor "Dia" pueda txtDiaX accesar a la propiedad .Enabled (txtDia1. Enabled = 1 ,txtDia2. Enabled =1,.....).
No quiero utilizar Case, porque se inflaría el código.
¿O alguna otra manera de llevar a cabo esto?
Respuesta
1
Creo que no te acabo de coger la idea. Pero veamos, en VBA puedes usar algo como esto para dimensionar los controles:
Option Compare Database
Option Explicit
Function ActivarControles(frm As Form, entSección As Integer, entEstado As Boolean) As Boolean
' Activar o desactivar los controles de la sección especificada del formulario.
' Utilizar los argumentos objeto Form, constante de sección y estado
' pasados al procedimiento ActivarControles.
Dim ctl As Control
' Establecer entEstado para todos los controles de la sección especificada.
For Each ctl In frm.Controls
If ctl.Section = entSección Then
On Error Resume Next
ctl.Enabled = entEstado
Err = 0
End If
Next ctl
ActivarControles = True
End Function
NOTA:
For Each...Next (Instrucción)
Repite un grupo de instrucciones para cada elemento de una matriz o colección.
En este caso, ctl es el elemento Requerido. Variable que se utiliza para iterar por los elementos del conjunto o matriz. Para conjuntos, elemento solamente puede ser una variable del tipo Variant, una variable de objeto genérica o cualquier variable de objeto específica. Para matrices, elemento solamente puede ser una variable tipo Variant
Claro que en VBA Matriz, puede ser casi que cualquier cosa, incluido el objeto Colección. El ejemplo de la función anterior se usa en un cuadro combinado donde hay que seleccionar un cliente de la lista, mientras no se haga eso, la sección Detalle puede estar en Enabled=False
Siguiendo con esto, esta claro que puedes establecer el valor o determinadas propiedades de un control, dependiendo del valor o propiedades de otro, p.e.:
With Form
If dia = ... then 'se puede evaluar de muchas formas
txtDia1.Enabled = True
Else
txtDia1.Enabled = False
End If
End With

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas