¿Cómo puedo establecer consultas con Microsoft Access?

Tengo una base datos de películas y me gustaría saber como puedo hacer una consulta que me pregunte por el titulo de una película y yo con meter por ejemplo parte del titulo ya me salgan los registros que contengan esas palabras que he escrito. Y lo mismo con otra consulta que me pregunte por la fecha y yo pueda introducir un criterio de fecha, por ejemplo películas anteriores a 1980.

1 respuesta

Respuesta
1
Para eso puedes utilizar un formulario que te sirva para filtrar las consultas, que lo puedes mostrar en un subformulario, realizando estos filtros... si así lo quieres me avisas... aquí hay que manejar sql y recordsets...
Ahora si lo que quiere es más sencillo,...
Cuando haces una consulta en 'criterio' le puede colocar que te pregunte por un parámetro... es decir
Imaginenos que hay una consulta donde quiera mostrar las películas (nombres, con el año).. ahora quieres utilizar parámetros comodín(significa que solo con una parte de lo que buscas te arroje resultados.. si busco *mi pas*, te buscaría aquellos títulos que sin importar por que empiece y finalice tienen la palabra 'mi pas'..
Entonces en el campo del titulo, donde dice criterios coloca 'like [Ingrese Titulo]' ...
La palabra reservada like, signifique que puede buscar parte de la palabra o por una datos completo.. OJO el mensaje del parámetro esta entre corchetes así debe ser, ese mensaje se lo mostrar access cada vez que abras la consulta...
Cuales pueden ser tus respuestas...
Ejemlplos:
1. Duro*
Te buscaría todas los títulos que EMPIEZAN por duro, sin importar que vaya después
2. *Matar
te buscaría todas los títulos que TERMINAN por Matar, sin importar que vaya antes
3. *de*
Te buscaría todas los títulos que tienen la palabra 'de' en cualquier lado, al comienzo, al final, en el medio.
OJO: los asteriscos son los comodines y debe ir si quiere que le busque parte de un titulo... ó...
4. Duro de matar (sin asteriscos).. te busca el titulo o títulos que se llamen así.
Ahora para fechas:
En citerios coloca:
between [Ingrese la primera fecha] And [Ingrese la segunda fecha]
Es parecida al anterior ejemplo, pero lleva las palabras reservadas Between (entre) And (y) cuando ingreses las fechas te busca en ese rango inclusive las que entraste.
Oja te haya podido ayudar me avisas
Hola, muchas gracias por tu respuesta, has puesto mucho interés, pero si me podrías resolvlema mediante sql y recordset te lo agradecería mucho, así conseguiría resultados aun más ríos. Saludos
Debes colocar un subformulario con el origen de datos vacío:
Suponiendo que la tabla se llame 'Peliculas', con los estés Campos (CodPel, NomPel, FecAdq) donde CodPel es la llave primaria (código de película), NomPel (nombre de la película) es tipo Texto, y FecAdq (fecha de adquisición de la película) es tipo fecha/tiempo...
Ahora, suponiendo que se llame 'NombrePeliculas' el Subformulario:
Debes crear cajas de texto en el subformulario según los campos a mostrar: es decir para este ejemplo deberías crear 3 cajas de texto son tres campos a mostrar, y en el origen del control (Propiedad ControlSource de la caja de texto, escribirás el nombre del campo que visualizara la caja) es decir
Necesitamos una caja donde el ControlSource seria 'CodPel', otra donde seria 'NomPel' y otra donde seria 'FecAdq' (lógicamente sin las comillitas sencillas)
Debes tener una caja de texto, donde escribirás el criterio de búsqueda...
En el evento AfterUpdate de la Caja de texto que llamaremos 'txtCriterio' colocas:
Sql = "SELECT * FROM PELICULAS WHERE NOMPEL LIKE '*" & TxtCriterio & "*';"
NombrePeliculas.RecordSource = Sql
NombrePeliculas. Requery
...
Si hay algún dato te lo debe mostrar, de lo contrario mostrara en blanco el subformulario..
Ojo:el criterio en la sentencia sql dice
NOMPEL LIKE '*" & TxtCriterio & "*'..
El asterisco hace lo mismo que le comentaba en la primera entrega, pero si lo quieres los puede quitar
NOMPEL LIKE '" & TxtCriterio & "'
Y cuando escribas el criterio en la caja de texto los coloca donde quieres que vayas..
Ejemplo a escribie en la caja:
*matar
Duro*
*uro de*
Pero si no tiene los asteriscos.. hazlo según tu necesidad... ojo con las comillas sencillas porque es un datos texto, ahora si quieres filtrar o buscar por fecha (FecAdq)
Deberías tener dos cajas de texto, en la primera escribirás la primera fecha dentro del rango y la segunda hasta donde va la fecha... la sentencia sql cambiaría a (Sponiendo que la caja de la primera fecha se llame TxtFecEntre y la otra TxtFecHasta)...
Ahora SI ESTÁN LLENAS LAS CAJAS DE FECHA (es importante o si no te votara un error)
PrimerFecha = Format(TxtFecEntre,"MM/dd/yyyy")
SegundaFecha = Format(TxtFecHasta,"MM/dd/yyyy")
Sql = "SELECT * FROM PELICULAS WHERE FECADQ between #" & PrimerFecha & "# AND #" & SegundaFecha & "#;"
...
Se utilizo dos variables para formatear las fechas, ya que sql utiliza el formato, mes/dia/año y si se bota dia/mes/año, no siempre vota los resultados esperados...
Debe asegurarse que las fechas sean validas, que entre como debe ser... para esto crea un arutina de error o validas las fechas con isdate, antes que ejecultar el código...
Oja te sirva, cualquier cosa me avisas.. telemaco..
No se te olvide valorar y finalizar la pregunta..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas