Mostrar Varias Tablas En Grid


Objetivo: Mostrar Varias Tablas En Grid
Tengo una base de datos en sqlite con varias tablas.

Es de contactos, por ejemplo nombre mail y teléfono.

Esta dividida en varias tablas, amigos, familiares y compañeros de trabajo.

Selecciono la tabla con un combobox. Por ejemplo si seleccionan en el combobox amigos se muestra en el grid los datos de la tabla amigos.

Las tablas son exactamente iguales con los mismos campos y el código es este:

PUBLIC SUB ComboBox1_Click()

dim tabla as string


IF ComboBox1.text = "Amigos" THEN tabla = "amigos"
IF ComboBox1.text = "Familia" THEN tabla = "familia"
IF ComboBox1.text = "Trabajo" THEN tabla = "trabajo"
IF ComboBox1.text = "Todo" THEN tabla = "datos, familia, trabajo" 'la clave supongo que esta en esta linea.

datasource.Table = tabla
conexion.exec("select * from '" & tabla & "'")
VarResult = conexion.exec("select * from '" & tabla & "' order by nombre desc")
datasource.Refresh


quiero que el grid muestre los datos de todas las tablas (amigos, familia, trabajo) cuando el usuario seleccione todo del combobox.

gracias

Objetivo: Re: Mostrar Varias Tablas En Grid
Amigo, yo había echo algo similar en visual basic, pero en lugar de usar tres tablas usaba una sola con una clave secundaria . Cuando queria ver los datos de los cd por ejemplo(Era una base de datos multimedia), incluía en la sentencia sql esa clave como condición, así me mostraba todos los registros que contenían dicha clave. No recuerdo el código y no conservo las fuentes pues era para windows y ya no uso ese S.O.
Era algo así como " select from multimedia when clave secundaria=cd"
Ni siquiera recuerdo bien la sintaxis exacta.
Espero te sirva.
Saludos

Objetivo: Re: Mostrar Varias Tablas En Grid
Hola Pittusa. Cuando miro es diseño que estas realizando de tu base de datos, lo primero que observo es que trabajando con Sqlite (sobre un fichero local), estas triplicando definiciones de tabla, que va contra toda norma en el diseño de B.D.
Si estuvieses obligado a separar estos datos por algún motivo, deberían residir en distintas B.D. No obstante puedes forzar la situación con una consulta UNION siempre que las tablas tengan exactamente la misma definición.
Como te ha dicho Dani26 tu diseño apunta a que tengas dentro de las tablas un campo que agrupe registros, como por ej. categoria y realizar consultas tal que

("SELECT * FROM tabla) # Obtendrías un result con todos los registros

("SELECT * FROM tabla # Result con los registros de una categoria
WHERE categoria = "Combobox.Index" # Para insertar el valor de Combobox usa sustitución &1 mejor
# WHERE categoria = &1", comboBox.Index)
#Consulta esto: http://gambasdoc.org/help/lang/subst
Si me viera obligado yo haría esto:
hConn.Exec("SELECT * FROM tabla WHERE categoria IN (&1,&2,&3)", Combo1.Index, Combo2.Index, Combo3.Index)

# Este ultimo te daría un Result con los registros de las categorias marcadas los respectivos combos, aunque esto te obligaría a jugar con las posibilidades que pueden darse cada caso comprobando los resultados obtenidos.

Espero haber sido de ayuda.

última edición por ahtonio el Lunes, 02 Agosto 2010, 11:37; editado 2 veces
Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.3823s (PHP: -87% SQL: 187%)
Consultas SQL: 46 - Debug off - GZIP Activado