Hola a todos:
Trataré ser breve, aunque no es fácil.
Una base de datos con alumnos, trato de crear un formulario en el que
exista una lista desplegable que muestre los alumnos, pero sólo los de
una determinada "unidad" o curso. Para que sólo muestre los de esa
unidad, intento usar otra lista desplegable en la que se elige el curso.
La operatoria sería: en la lista desplegable "SeleccionarUnidad" elijo
el curso, pulso el botón "BotonFiltar" y mediante una macro asociada a
este botón (evento "Al ejecutar") se filtran los datos a la lista
desplegable "SeleccionarAlumno", por lo que ésta sólo mostraría los
alumnos de esa unidad.
El formulario será más complejo, pero por ahora me he atascado aquí.
Estoy usando como ejemplos las macros de una base de datos de ejemplo
llamada "MANIPULAR_BASE" que creo que es obra de Ariel.
La macro asociada al botón se llama "AlApretarBoton1", y ésta a su vez
llama a la subrutina "GenerarListaAlumnos".
Y en ésta segunda es en la que se detiene, en la línea que marco con
**>>** . Además me sale un mensaje de error que dice "Variable de objeto
no establecida".
Si lo necesitan puedo enviarles adjunta la base de datos. ¿Se pueden
enviar adjuntos a la lista de correos?
Aquí les dejo el código de las macros, y gracias por su ayuda:
REM ***** BASIC *****
Sub AlApretarBoton1(oEv)
Dim oForm1, oSeleccionUnidad
Dim sFiltroNombre$
Dim sSeleccion$, sSelect$, sORDER$, sSQL$
oModelo = oEv.Source.Model
oForm1 = oModelo.getParent()
sSelect = "SELECT ""PrimerApellido"" || ' ' || ""SegundoApellido"" ||
', ' || ""Nombre"" AS Alumno, ""Unidad"" FROM ""Alumnos"""
oSeleccionUnidad = oForm1.getByName("SeleccionarUnidad")
sSeleccion =
oSeleccionUnidad.StringItemList(oSeleccionUnidad.SelectedItems(0))
sFiltroNombre = " WHERE ""Unidad"" = '" & sSeleccion & "'"
sORDER = " ORDER BY ""PrimerApellido"", ""SegundoApellido"",
""Nombre"""
sSQL = sSelect & sFiltroNombre & sORDER
SUB_GenerarListaAlumnos("SeleccionarAlumno", sSQL)
End Sub
Sub SUB_GenerarListaAlumnos(sNombreLista$, sComando$)
Dim sMatriz$(0), oListaAlumnos
oListaAlumnos = oModelo.Parent.getByName(sNombreLista)
oListaAlumnos.ListSourceType =
com.sun.star.form.ListSourceType.SQLPASSTHROUGH
sMatriz(0) = sComando
oListaAlumnos.ListSource = sMatriz()
oListaAlumnos.Enabled = TRUE
End Sub
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]