SQL - AYUDA CON CONSULTA SQL PLEASE!!!

 
Vista:

AYUDA CON CONSULTA SQL PLEASE!!!

Publicado por David (1 intervención) el 08/09/2006 22:46:00
Hola A todos:

Necesito ayuda con referencia a SQL.

La descripciòn de mi asunto es un poco larga pero aqui va:

Estoy trabajando con una BD Access en VB con DAO.

Una tabla de mi base se llama "tabla_general", otra "canciones_cd01". Tuve necesidad de mostrar en una consulta los tìtulos de canciones contenidas en "canciones_cd01" mostrando a la vez datos relacionados a ellas PERO que se encuentran en la primera tabla ("tabla_general"). Para ello relacionè ambas tablas con la sig. clàusula SQL como sigue:

sqlselect = "SELECT canciones_cd01.*, tabla_general.* "
sqlfrom = "FROM canciones_cd01 INNER JOIN tabla_general
ON canciones_cd01.carpeta = tabla_general.index ORDER BY canciones_cd01.NoGral"
SQL = sqlselect & sqlfrom

y hasta aqui todo funciona bien!!!!!!

PERO TENGO NECESIDAD DE FILTRAR ESTA CONSULTA MOSTRANDO SÒLO LOS TÌTULOS DE CANCIONES QUE SE PAREZCAN AL TEXTO QUE YO COLOQUE EN UN TEXTBOX.

O SEA, LA CONSULTA FINAL QUE QUIERO ES:

"VER LOS DATOS(<album, artista de TABLA_GENERAL> <titulo de cancion y nùmero consecutivo de CANCIONES_CD01>) DE LA CANCION QUE YO PONGA EN EL TEXTBOX"

PARA ELLO SE SUPONE QUE A LA CLÀUSULA ANTERIOR DEBO AGREGARLE ALGO ASÌ COMO LO SIG:

Buscado = Text1.Text
criterio="canciones_cd01.titulo LIKE '*" & Buscado & "*'"

HE INTENTADO INSERTAR ALGO ASÌ EN LA PRIMERA CLÀUSULA QUE MENCIONÈ ARRIBA, O PONERLA APARTE, PERO NO ME FUNCIONA.

Esto no me funciona:

sqlselect = "SELECT canciones_cd01.*, tabla_general.* "
sqlfrom = "FROM canciones_cd01 INNER JOIN tabla_general
ON canciones_cd01.carpeta = tabla_general.index "
sqlwhere="WHERE canciones_cd01.titulo LIKE '*" & Buscado & "*'"
SQL = sqlselect & sqlfrom & sqlwhere

Me topo con que hago cosas no permitidas, errores de sintaxis, o simplemente el programa no muestra nada, muestra todo, etc,

ME VUELVO LOCOOOOO

ALGUIEN ME PUEDE AYUDAR PORFAVOR????

David
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA CON CONSULTA SQL PLEASE!!!

Publicado por monky (11 intervenciones) el 10/09/2006 02:46:22
Te falta hacer uso del comodin en la consulta...

Mira aca te dejo un texto en donde veras claro como se usa el LIKE en ACCESS

El Operador Like

Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL. Su sintaxis es:

expresión Like modelo

En donde expresión es una cadena modelo o campo contra el que se compara expresión. Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. Por modelo puede especificar un valor completo (Ana María), o se puede utilizar una cadena de caracteres comodín como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An*).

El operador Like se puede utilizar en una expresión para comparar un valor de un campo con una expresión de cadena. Por ejemplo, si introduce Like C* en una consulta SQL, la consulta devuelve todos los valores de campo que comiencen por la letra C. En una consulta con parámetros, puede hacer que el usuario escriba el modelo que se va a utilizar.

El ejemplo siguiente devuelve los datos que comienzan con la letra P seguido de cualquier letra entre A y F y de tres dígitos:

Like 'P[A-F]###'

Este ejemplo devuelve los campos cuyo contenido empiece con una letra de la A a la D seguidas de cualquier cadena.

Like '[A-D]*'

En la tabla siguiente se muestra cómo utilizar el operador Like para comprobar expresiones con diferentes modelos.

ACCESS

Tipo de coincidencia Modelo Planteado Coincide No coincide
Varios caracteres 'a*a' aa', 'aBa', 'aBBBa' ' 'aBC'
Carácter especial 'a[*]a' 'a*a' 'aaa'
Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab'
Un solo carácter 'a?a' 'aaa', 'a3a', 'aBa' 'aBBBa'
Un solo dígito 'a#a' 'a0a', 'a1a', 'a2a' 'aaa', 'a10a'
Rango de caracteres '[a-z]' 'f', 'p', 'j' '2', '&'
Fuera de un rango '[!a-z]' '9', '&', '%' 'b', 'a'
Distinto de un dígito '[!0-9]' 'A', 'a', '&', '~' '0', '1', '9'
Combinada 'a[!b-m]#' 'An9', 'az0', 'a99' 'abc', 'aj0'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar