Como hacer una repetición de código que es siempre el mismo

If IsNull(Me.Ubicacion1) Then
Me.Comando01.Visible = False
Else
Me.Comando01.Caption = Ubicacion1
Me.Comando01.Width = DLookup("Ancho", "comandos", "[comando] = 'Comando01'")
Me.Comando01.Height = DLookup("Alto", "comandos", "[comando] = 'Comando01'")
Me.Comando01.Top = DLookup("Arriba", "comandos", "[comando] = 'Comando01'")
Me.Comando01.Left = DLookup("izquierda", "comandos", "[comando] = 'Comando01'")
End If

If IsNull(Me.Ubicacion2) Then
Me.Comando02.Visible = False
Else
Me.Comando02.Caption = Ubicacion2
Me.Comando02.Width = DLookup("Ancho", "comandos", "[comando] = 'Comando02'")
Me.Comando02.Height = DLookup("Alto", "comandos", "[comando] = 'Comando02'")
Me.Comando02.Top = DLookup("Arriba", "comandos", "[comando] = 'Comando02'")
Me.Comando02.Left = DLookup("izquierda", "comandos", "[comando] = 'Comando02'")
End If

.....  If IsNull(Me.Ubicacion40) Then   ......

Continua así hasta el 40

Como hago para no escribir tanto código y que lo parametrice, es posible

Desde ya muchas gracias por sus apoyos de siempre, he logrado una hermosa ampliación con sus ayudas

1 Respuesta

Respuesta
2

He visto cosas peregrinas, pero esto es lo más. Y no sé porque hay que poner comando01 cuando perfectamente se puede poner comando1, etc.

Si tengo la tabla

Y el formulario, donde le he puesto 3 botones pero podrían ser más de 200 y tres cuadros de texto, donde para que alguno tenga valor se lo he puesto en su origen de control

En el evento Al activar el registro, ya que no dices cuando quieres que se ejecute la instrucción le pongo

Private Sub Form_Current()
Dim i As Integer
Dim lbl As Control, ubi As Control
 For i = 1 To 3
     Set lbl = Controls("comando" & Format(i, "00"))
     Set ubi = Controls("ubicacion" & i)
If IsNull(ubi) Then
lbl.Visible = False
Else
lbl.Caption = ubi.Value
lbl.Width = DLookup("Ancho", "comandos", "Nombre = '" & lbl.Name & "'")
lbl.Height = DLookup("Alto", "comandos", "Nombre = '" & lbl.Name & "'")
lbl.Top = DLookup("Arriba", "comandos", "Nombre = '" & lbl.Name & "'")
lbl.Left = DLookup("izquierda", "comandos", "Nombre = '" & lbl.Name & "'")
End If
Next i
End Sub

Cuando lo abro, el comando02 no lo muestra y los otros los coloca según la tabla

En el código, donde yo pongo 

For I=1 to 3 puedes poner For i=1 to 40 o lo que te dé la gana.

¡Gracias!

Javier Eres mi messi de esto... tus ayudas me han enseñado tanto y gracias a ello he podido hacer un muy linda aplicación!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas