Access - Consulta de parametros

 
Vista:
sin imagen de perfil
Val: 49
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Consulta de parametros

Publicado por José Ant. Pinín (63 intervenciones) el 01/04/2016 12:59:33
Buenos días.

Mi duda es como puedo realizar una consulta de parámetros y seleccionar varios datos en la misma consulta.

Ejemplo: Tengo una columna con Mes-Año y cuando me solicita el parámetro a introducir quiero seleccionar.

Ene-2014, Ene-2015, Ene-2016

Seguramente estará mejor explicado en el fichero adjunto

Gracias
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
sin imagen de perfil

Consulta de parametros

Publicado por Enrique Heliodoro (1664 intervenciones) el 01/04/2016 18:12:35
el dato 'mes-año' es un nemotécnico aceptable, pero para Access no es un dato que tenga mucho valor (se le tendría que trabajar 'duramente'), pero por suerte en ese mismo origen están separados el mes y el año (no veo que sea muy eficiente el diseño, pero 'es lo que hay').

La solución al problema que yo aplicaría seria seleccionarlos en un cuadro de lista (activando la opción de permitir selección multiple), y en tiempo de ejecución recorrer el cuadro de lista (seleccionando a los items que tienen activada esa propiedad) y creando una lista con ellos (lista del tipo: yyyymm, esto es el año y mes en numero .... opcionalmente el nombre: yyyymmm) esa lista se utilizaría con la clausula 'In' comparándola con las fechas disponibles (a las que también se les adjudicaría ese mismo formato).

Suponiendo que se seleccionasen los meses de enero de esos tres años, la supuesta lista quedaría asi:

201401, 201501, 201601

Y la condición se aplicaría asi contra un supuesto campo de fecha 'normal':

Where Format ([campofecha],"yyyymm") In(cadena de texto) ---> Where Format ([campofecha],"yyyymm") In(201401, 201501, 201601)

Utilizar letras (Ene en lugar de 01) forzaría una comparacion de texto que (probablemente) haría una comparación mas lenta, además, exigiría que los referentes también fueran declarados como texto:

Antes: 201401, 201501, 201601
Después: '2014ene', '2015ene', '2016ene'

Where Format ([campofecha],"yyyymmm") In('2014ene', '2015ene', '2016ene')

La curiosidad es: ¿esos son 'parámetros' o condiciones?

Un parámetro (en Access y en consultas) es la declaración de un tipo de dato 'al que se le asigna un nemotécnico' y funciona como una variable de uso interno, un ejemplo clásico (vista SQL de una consulta):


PARAMETERS [Dime la clave] Long;
SELECT Almacen.Clave, Almacen.DescripcionI
FROM Almacen
WHERE (((Almacen.Clave)=[dime la clave]));
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