Ayuda para corregir una consulta select en SQL

A ver si puedes solucionarme esto;
Trabajo en visual basic y access, y aunque no entran en tu categoría visual basic, lo que quiero saber es el formato de una consulta SQL.
Lo que quiero es que me devuelva todos los registros en los cuales en el campo DESCRIPCIÓN de la tabla ARTÍCULOS contenga la palabra CHAQUETA, para que así, me devuelva CHAQUETA VAQUERA, CHAQUETA PIEL...
la sintaxis que utilizo es algo asi;
("select * from ARTICULOS where DESCRIPCION= '" & palabra & "'")
En donde palabra = "CHAQUETA", pero con solo CHAQUETA no me devuelve ningún registro, tengo que poner la descripción entera.

1 respuesta

Respuesta
1
Ejemplo1:
En este caso devuelve cualquier coincidencia de cadena en el texto que pongamos en el Input, si ponemos as devolverá aspirina, jeringas, etc.
SELECT Productos.IdProducto, Productos.NombreProducto
FROM Productos
WHERE (((Productos.NombreProducto) Like "*" & [Introducir el nombre del producto] & "*"));
Ejemplo2:
Si quieres solo coincidencias al principio de la cadena seria así:
SELECT Productos.IdProducto, Productos.NombreProducto
FROM Productos
WHERE (((Productos.NombreProducto) Like [Introducir el nombre del producto] & "*"));
Ejemplo3:
Y si buscas la coincidencia al final de la cadena, así:
SELECT Productos.IdProducto, Productos.NombreProducto
FROM Productos
WHERE (((Productos.NombreProducto) Like "*" & [Introducir el nombre del producto]));
hola, Raul, en primer lugar muchas grácias por la velocidad de respuesta, y seguidamentes;
He probado muchas variaciones pero ninguna me funciona, se ve que no doy con la sintaxis justa. Aquí te pongo un poco lo que he probado para ver si tu sabes la sintaxis correcta:
Set aux = Datos.OpenRecordset("select ARTICULOS.DESCRIPCION from ARTICULOS where ARTICULOS.DESCRIPCION " Like cmbDescripcion & "*")
Set aux = Datos.OpenRecordset("select ARTICULOS.DESCRIPCION from ARTICULOS where ARTICULOS.DESCRIPCION Like" & cmbDescripcion & "*")
Bueno, y esto variando las " de lugar etc..
Muchas gracias de nuevo
Bien, la sintaxis anterior con la que te respondí era para usar en una consulta, pero se puede adaptar para usar en un form, solo hay que hacer referencia al mismo en la celda criterios del campo que queramos filtrar:
Como "*" & [forms]![frmSuchen]![txtSuchFilter] & "*"
Otra cosa es que quieras usar VB, entonces puedes probar con un filtro del tipo:
Sub EstablecerFiltro()
Dim frm As Form, cadMsg As String
Dim cadInput As String, cadFiltro As String
' Abrir el formulario Productos en la vista Formulario.
DoCmd.OpenForm "ClientesA"
' Devolver variable de objeto Formulario que apunta a formulario Productos.
Set frm = Forms!ClientesA
cadMsg = "Introduzca una o más letras del IdCliente" _
& " seguidas por un asterisco. O sin *"
' Indique al usuario que introduzca las letras.
cadInput = InputBox(cadMsg) 'aqui podrias probar lo del Or con un cadInputX
' Construir la cadena de criterios.
cadFiltro = BuildCriteria("IdCliente", dbText, cadInput)
' Establecer propiedad Filtro para aplicar Filtro.
frm.Filter = cadFiltro
' Establecer la propiedad ActivarFiltro; el formulario muestra ahora los registros filtrados.
frm.FilterOn = True
End Sub
veras Raul, creo que no llego a comprenderte;
De momento la propiedad .Filter del formulario no existe,
No se lo que significa abrir un formulario en la vista formulario (DoCmd.Openform),
"ClientesA": que es, la bda, la tabla, ¿el nombre de campo?
Luego pones dim frm as form, pero abajo pones frm=forms!ClientesA, no entiendo
¿No hay alguna manera de ponerlo en el mismo RECORDSET de consulta, esta sintaxis que tu me habías dado en tu anterior respuesta?
Por si te interesan los datos:
base de datos: basedatos.mdb
Formulario: formNewArt
Tabla: ARTÍCULOS
Nombre campo: DESCRIPCIÓN
Perdona que te vuelva a molestar pero no logro entenderlo y lo necesito urgente.
Me parece que no nos hemos entendido, "formato de una consulta SQL", evidentemente el SQL de una consulta de selección sencilla en access no una consulta especifica de SQL.
la sintaxis que utilizo es algo asi;
("select * from ARTICULOS where DESCRIPCION= '" & palabra & "'")
La sintaxis que te propongo es esta (puedes pegarlo tal cual en el diseño de una consulta de selección en vista SQL, si la tabla existe te la pondrá de forma automática cuando pases a vista diseño):
SELECT ARTICULOS.DESCRIPCION
FROM ARTICULOS
WHERE (((ARTICULOS.DESCRIPCION) Like "*" & [Introducir el nombre del producto] & "*"));
Ahora puedes ejecutar la consulta y te pedirá el parámetro [Introducir el nombre del producto]
NOTA: La sintaxis de una consulta de selección vista en SQL es diferente a la vista diseño de la misma.
Bueno Raul, probé todo lo que me dijiste pero no había manera. Finalmente he encontrado lo que buscaba en un libro. Te lo envío por si tienes curiosidad de saber exactamente lo que buscaba. De todas formas, Muchísimas gracias y perdona que te haya dado tanto la tabarra.
Set aux = Datos.OpenRecordset("select * from ARTICULOS where ARTICULOS.DESCRIPCION Like '*" & cmbDescripcion & "*'")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas