• Martes 19 de Noviembre de 2024, 05:41

Autor Tema:  Como Relaizar La Consulta A La Base De Datos  (Leído 1770 veces)

iratxe

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Como Relaizar La Consulta A La Base De Datos
« en: Miércoles 4 de Julio de 2007, 13:07 »
0
hola a todos:

Estoy utilizando por primera vez una base de datos para realizar consultas desde visual basic. El programa consiste en conseguir de la base de datos los temas y escribirlos en un combo y una vez seleccionado un tema, que se vuelva a conectar a la base de datos y me saque los subtemas de ese tema.

Al poner esta linea no me encuentra nada en la base de datos:

Set rs1 = DB.OpenRecordset("SELECT distinct Subtema from fotos WHERE Tema like '%elementoSeleccionado%'", dbOpenDynaset)

y si quito la parte del where me salen todos los subtemas que hay en la base de datos(pero yo solo quiero los relacionados con el tema)

Alquien sabe porque no me encuentra nada? muchisimas gracias

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Como Relaizar La Consulta A La Base De Datos
« Respuesta #1 en: Miércoles 4 de Julio de 2007, 18:19 »
0
Hola iratxe

Citar
Set rs1 = DB.OpenRecordset("SELECT distinct Subtema from fotos WHERE Tema like '%elementoSeleccionado%'", dbOpenDynaset)

oye, ese campo distinct Subtema son dos campos y te faltó la coma? o es un mismo campo, porque de ser un mismo campo pues creo que debes de ponerlo entre comillas simples 'distinct Subtema' o haberlo creado asi distinct_Subtema, la tabla se llama Fotos asi que no es tabla.campo

Yo he hecho cosas asi pero no he usado el Like, sino que por ejemplo en la TablaPadre (TB1) tengo los campos donde el ID es (PK) PrimaryKey, correcto, entonces en la TablaHija (TB2) la que contiene los SubItems o SubTemas el ID no es (PK).

Entonces tu tomas el Tema (el registro) que buscas con tu primera SQL, y para cargar (supongo en otro comboSubTemas o en un Grid MSFlexGrid, DataGrid, DBGrid) los Subtemas de la otra tabla, pues indicarias en la SQL de la Tabla de SubTemas una SQL donde indiques que se traiga todos los registros de TB2 mientras el ID sea igual al ID de TB1.

Al traerte el Tema puedes ahí ya tendrias el ID de la TablaTemas, la pones un TextBox, en una variable o usas el RsTemas("codigo") para compararlo con la SQL de SubTemas

Ejemplo1:
Select Campo1, Campo2 From SubTemas Where codigo=" & txtcodigoTema.text & ""
Ejemplo2:
dim cod as integer
cod=RsTema("codigo")
Select Campo1, Campo2 From SubTemas Where codigo=" & cod & ""
O directamente
Select Campo1, Campo2 From SubTemas Where codigo=" & RsTema("codigo") & ""

Yo por ejemplo tengo una tabla que tiene Items, y otra que tiene los SubItems
pero no todos los Item tienen SubItem, solo algunos
Entonces cuando en un Combo selecciono un Item, en otro Combo al lado, se muestran sus SubItem "solo si este tiene" sino, el 2do Combo no despliega nada.

En esta imagen, se muestran dos tablas, la de la Izquierda es la tabla Padre, la de los Item, y la tabla de la Derecha es la tabla Hija, la de los SubItem, ahí se ve que solo algunos Item tienen SubItem. por ejemplo el Item Embarazo tiene varios SubItem, puesto que comparten el mismo código.


Asi en la SQL de Items me traigo el registro y luego en otra SQL indico traerme todos los registros que tengan el mismo codigo. Asi muestro en un Combo los Item y en otro combo los SubItem del mismo, nunca se trae los de otro puesto que cod1=cod2 deben ser iguales para traerse todos los registros.

mas o menos asi es lo tuyo verdad!  :huh:
Si esto es Leído por accidente, induzca al vomito

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Como Relaizar La Consulta A La Base De Datos
« Respuesta #2 en: Jueves 5 de Julio de 2007, 09:21 »
0
Cita de: "iratxe"
Set rs1 = DB.OpenRecordset("SELECT distinct Subtema from fotos WHERE Tema like '%elementoSeleccionado%'", dbOpenDynaset)

Hola en access el comodin es *
Código: Text
  1. Set rs1 = DB.OpenRecordset("SELECT distinct Subtema from fotos WHERE Tema like '*elementoSeleccionado*'", dbOpenDynaset)
  2.  

Espero te sirva

Cita de: "UserCode"
oye, ese campo distinct Subtema son dos campos y te faltó la coma? o es un mismo campo, porque de ser un mismo campo pues creo que debes de ponerlo entre comillas simples 'distinct Subtema' o haberlo creado asi distinct_Subtema, la tabla se llama Fotos asi que no es tabla.campo


http://sql.1keydata.com/es/sql-distinct.php  :ph34r:


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Como Relaizar La Consulta A La Base De Datos
« Respuesta #3 en: Jueves 5 de Julio de 2007, 15:53 »
0
Definitivamente tengo que bajarme un manual de SQLs  :P
Si esto es Leído por accidente, induzca al vomito

iratxe

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Como Relaizar La Consulta A La Base De Datos
« Respuesta #4 en: Sábado 14 de Julio de 2007, 13:51 »
0
vale, muchisimas gracias, ya me funciona
:)