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.
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
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"