Consulta + Filtrado en control de tabla

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
grijan
Mensajes: 10
Registrado: Dom Nov 14, 2010 1:30 pm

Consulta + Filtrado en control de tabla

Mensaje por grijan »

Hola.
Como puedo enlazar una tabla que no es contigua en una consulta + filtrado.

p.e. tengo las tablas:
t_peliculas y t_directores unidas directamente:

t_peliculas--t_directores
BD_filmo_relac2.jpg
y para la consulta + filtrado: introduzco el nombre de un director (p.e. en un textbox situado en un diálogo)
y me muestra en un control de tabla (en el formulario) todas las películas de ese director. El código que uso
me funciona de milagro:

Código: Seleccionar todo

ElseIf TablaSeleccionada = "T_directores" Then
   ConsultaSQL = " SELECT "&_
                 " ID_director, Director, Pais "&_
                 " FROM "&_
                 " T_directores "&_
                 " WHERE "&_
                 " ""Director"" LIKE '"+CriterioBusqueda+"%'"
                  
   SQLRunner = Conexion.createStatement()       'Para el filtrado en el control de tabla
   ResultSet = SQLRunner.executeQuery(ConsultaSQL)      
   If ResultSet.next Then
      ID_aux = ResultSet.Columns.getByIndex(0)
      SubCadID = ID_aux.getString()
      oFormulario.Filter = "("& """T_peliculas"""&"."&"""Director""" &" = " & SubCadID &")"
      oFormulario.ApplyFilter = True
      oFormulario.reload()
   End If 
   ResultSet = SQLRunner.executeQuery(ConsultaSQL)  'Para la consulta en un dialogo      
EndIf
Ahora quiero que me haga un filtrado por actores (que al consultar un actor, me muestre en el control de tabla todas las películas de ese actor)
pero como antes de la tabla t_actores hay una tabla doble: tr_peliculas-actores, no sé como es la sintaxis para aplicar el filtro.

Gracias
grijan
Mensajes: 10
Registrado: Dom Nov 14, 2010 1:30 pm

Re: Consulta + Filtrado en control de tabla

Mensaje por grijan »

Lo máximo que he conseguido es que si introduces el ID de un actor se listan todas sus películas en un cuadro de texto en el diálogo,
pero en el control de tablas (en el formulario) se listan en la misma fila, es decir cada nueva película sustituye a la anterior.
El código:

Código: Seleccionar todo

ElseIf TablaSeleccionada = "Tr_peliculas-actores" Then
      ConsultaSQL = " SELECT "&_
                    " ""Tr_peliculas-actores"".""pelicula"", T_actores.Actor, T_peliculas.Titulo "&_
                    " FROM "&_
                    " T_peliculas, T_actores, ""Tr_peliculas-actores"" "&_
                    " WHERE "&_
                    " ""Tr_peliculas-actores"".""actor"" LIKE '"+CriterioBusqueda+"%'"&_
                    " AND T_actores.ID_actor = ""Tr_peliculas-actores"".""actor"""&_
                    " AND ""Tr_peliculas-actores"".""pelicula"" = T_peliculas.ID_pelicula" 
      
      SQLRunner = Conexion.createStatement()
      ResultSet = SQLRunner.executeQuery(ConsultaSQL)
        
      While ResultSet.next
         ID_aux = ResultSet.Columns.getByIndex(0)
         SubCadID = ID_aux.getString()
         oFormulario.Filter = "("& """T_peliculas"""&"."&"""ID_pelicula""" &" = " & SubCadID &")"
         oFormulario.ApplyFilter = True
         oFormulario.reload()         
      Wend
Pero no consigo que las peliculas del mismo actor se listen en distintas filas en el control de tablas.
A ver si alguien puede ayudarme. Gracias.
OpenOffice 3.2.1 Windows XP Home
Responder