Cargar Sub Formulario

Tengo un formulario con sub formulario en el que trabajo sin problemas, si quisiera cargar ese sub formalrio a partir una elección hecha con un cuadro de lista cuál sería el código Visual Basic. O sea si elijo form1 cargar form1, etc.
Respuesta
1
EL comando para abrir formularios es Docmd. Openform ("NombreFormulario")
Simplemente pones en NombreFormulario el nombre del formulario que tú quieras, (el valor devuelto por el cuadro de lista)
Si lo que quieres es que dependiendo de un valor de cuadro de lista ya dentro de un formulario se relacione con él uno u otro subformulario, sólo tienes que poner en el subformulario, como origen de control el nombre del subformulario que quieras.
Formulario.Subformulario.SourceObject="NombreFormulario"

1 respuesta más de otro experto

Respuesta
1
Según lo entendí de la pregunta pueden ser dos cosas, una que cambie el contenido del subformulario según la elección del cuadro de lista y otra que se cambie directamente el subformulario entero.
Como tengo hecho algo parecido a la primera opción te mando el código que deberías ANEXAR AL FORMULARIO PRINCIPAL.
Yo lo hice para que se ejecute la función RequerySubform() cuando se hace click en un botón de comando.
Y esta función RequerySubform() llama a otra que toma el o los items seleccionados en el cuadro de lista, luego rearma la sentencia SQL para la consulta y le cambia el origen de registros al SubFormulario.
Para usarla solo deberías cambiar todo lo que comienza con la palabra "Nombre" por el de tus controles. Ej.: NombreCuadroLista por el nombre de tu cuadro de lista.
En lo que podes tener alguna dificultad es en la sentencia SQL si no tenés algo de practica con estas sentencias, por lo demás no deberías tener problemas.
Espero que haya optado por la solución que te interesaba.
Saludos
Billydos
' Inicio del Código
Private Function RequerySubform()
Dim strFullSQL As String
Dim strWhereSQL As String
strWhereSQL = IncludeItems()
If strWhereSQL = "" Then
strWhereSQL = " False;"
End If
strFullSQL = "SELECT NombreTabla.NombreCampo1, NombreTabla.NombreCampo2 " & _
"FROM NombreTabla " & _
"Where" & strWhereSQL
Me!NombreSubformulario.Form.RecordSource = strFullSQL
End Function
Private Function IncludeItems() As String
Dim varItems As Variant
Dim strTemp As String
For Each varItems In Me!lboItems.ItemsSelected()
strTemp = strTemp & "NombreTabla.NombreCampo1 = " & _
Me!NombreCuadroLista.ItemData(varItems) & " Or "
Next
If Len(strTemp) > 0 Then
IncludeItems = "(" & Left$(strTemp, Len(strTemp) - 4) & ")"
Else
IncludeItems = ""
End If
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas