** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y Otros sistemas
  Mensajes nuevos Mensajes nuevos RSS - Filtrar consulta paso a traves.
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoFiltrar consulta paso a traves.

 Responder Responder Página  12>
Autor
Mensaje
DelaMC Ver desplegable
Habitual
Habitual


Unido: 29/Septiembre/2010
Localización: España
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Tema: Filtrar consulta paso a traves.
    Enviado: 14/Noviembre/2011 a las 18:26
Buenas compañeros ,tengo una consulta paso a través, la cual tiene un campo fecha,con el cual quiero realizar un filtrado mediante un campo de entrada de fecha de un formulario.Para ello escribo lo siguiente:

WHERE CONVERT(VARCHAR(10), dbo.Tabla.DateAndTime ,103)=Formularios!Selección General!Selección 2!Fecha entrada
Me da error de sintaxis y no veo el por que; si escribo a pelo WHERE CONVERT(VARCHAR(10), dbo.Tabla.DateAndTime ,103)='21/11/2010' me lo filtra bien.
¿Que hago mal?


Editado por DelaMC - 14/Noviembre/2011 a las 20:17
Arriba
MexMan70 Ver desplegable
Colaborador
Colaborador


Unido: 17/Julio/2007
Localización: DarkSide
Estado: Sin conexión
Puntos: 9233
Enlace directo a este mensaje Enviado: 14/Noviembre/2011 a las 19:26
Será que Access no entiende de los espacios ??
 
Formularios![Selección General]![Selección 2]![Fecha entrada]
OneDrive: http://sdrv.ms/Vk6eJd
Arriba
DelaMC Ver desplegable
Habitual
Habitual


Unido: 29/Septiembre/2010
Localización: España
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 14/Noviembre/2011 a las 20:04
así también he probado,y me sigue dando el mismo error.
Saludos.

Editado por DelaMC - 14/Noviembre/2011 a las 20:18
Arriba
MexMan70 Ver desplegable
Colaborador
Colaborador


Unido: 17/Julio/2007
Localización: DarkSide
Estado: Sin conexión
Puntos: 9233
Enlace directo a este mensaje Enviado: 14/Noviembre/2011 a las 21:27
Pues el error lo resuelves asignando correctamente la sintaxis:http://www.llodax.com/Tutoriales/SintaxisSubForms.htm
OneDrive: http://sdrv.ms/Vk6eJd
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4071
Enlace directo a este mensaje Enviado: 14/Noviembre/2011 a las 22:11

Las consultas de paso a través se ejecutan en el servidor y éste no entiende nada de formularios o controles. O sea, que no se puede utilizar un control de un formulario como parámetro y tienes que sustituirlo por su valor concatenándolo al texto SQL.

La consecuencia inmediata es que tienes que escribir la consulta de paso a través cada vez que cambia el valor del control, cambiando la propiedad SQL del querydef.
 
Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
DelaMC Ver desplegable
Habitual
Habitual


Unido: 29/Septiembre/2010
Localización: España
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 08:39
Buenas no se si te he entendido chea1 en tu ultimo párrafo,
escribir la consulta te refieres a ejecutarla por que yo pretendo eso, que cuando cambien el valor fecha de el campo se ejecute la consulta.Por que en caso que no pudiera, podría tomar ese valor en esta consulta desde otra consulta?
Gracias por vuestro tiempo.
Arriba
DelaMC Ver desplegable
Habitual
Habitual


Unido: 29/Septiembre/2010
Localización: España
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 09:35
MexMan70 si no me equivoco segun la tabla la sintaxis correcta seria Forms!Selección General!Selección 2.Form!Fecha entrada,pues aun así me da fallo de llamada.
Estoy atascado y no se como hacerlo por mas que busco!!
Gracias.
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4071
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 09:39

Con escribir la consulta me refiero a que hay que hacerla de nuevo, cambiándola el texto SQL.  Y no puede tomar ese valor desde otra consulta

Las consultas de paso a través son de sólo lectura, por lo que su utilidad es limitada ¿Para qué necesitas una consulta de paso a través?
Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
DelaMC Ver desplegable
Habitual
Habitual


Unido: 29/Septiembre/2010
Localización: España
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 09:56
Pues por que leo una barbaridad de datos de tablas sql, y para mejorar su velocidad (ya había indexado y demás recomendaciones)ley que realizar la 1 consulta con este formato aceleraría la ejecución de las mismas,ademas he probado y obtengo unos resultado muy buenos,y eso que de momento realizo la consulta de todos los datos de la tabla sin filtrar.No se si te aclaro el por que la utilizo.
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4071
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 13:41
Pues es un buen motivo para usarlo. Siendo así merece la pena escribir en cada ocasión la consulta.
 
Como no acepta parámetros, mediante código debes modificar la propiedad SQL del querydef antes de ejecutarla en cada ocasión.
 
Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
DelaMC Ver desplegable
Habitual
Habitual


Unido: 29/Septiembre/2010
Localización: España
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 13:55
Ahí es donde veo el problema por que no se por donde empezar,como cambiaría el código en función de un valor fecha de un formulario?


Editado por DelaMC - 15/Noviembre/2011 a las 13:55
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4071
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 18:43

Tienes que empezar a manejar ciertos conceptos, para ello la ayuda que presta F1 es muy completa y lo que más a mano tienes.

Empieza por la sintaxis correcta para referirte a un control en un subformulario. Lee acerca del formato de fecha correcto admitido en expresiones SQL y sobre la función format. Estudia la colección Querydefs.
 
Después de todo eso, entenderás que la forma de cambiar el SQL de una consulta guradada sería algo así:
 
Dim qdf As QueryDef, stSQL As String
stSQL = "SELECT... WHERE CONVERT(VARCHAR(10), dbo.Tabla.DateAndTime ,103)='" & Format(Forms![Selección General].[Selección 2].Form![Fecha entrada], "mm/dd/yy") & "'"
Set qdf = CurrentDb.QueryDefs("MiConsulta")
qdf.SQL = stSQL
CurrentDb.QueryDefs.Refresh
 
 
Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
DelaMC Ver desplegable
Habitual
Habitual


Unido: 29/Septiembre/2010
Localización: España
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 19:00
Gracias Chea1 por todo lo 1, estoy a tope con el tema de Querydefs pero aun estoy en fase inicial,en cuanto a format y la sintaxis correcta para referirme a un control en un subformulario, la tengo clara ya que la la uso en muchos sitios,pero dudaba por que la aplicaba sobre esta consulta y me comentaban que la sintaxis no era correcta.
En cuanto al código que me indicas ,lo implementaría en por ejemplo un botón que lanzaría la macro? por que se supone si no e he entendido mal que la consulta ya no se tocaría,no?
Gracias por tu atención y ayuda compañero.
Arriba
Chea1 Ver desplegable
Moderador
Moderador


Unido: 20/Noviembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4071
Enlace directo a este mensaje Enviado: 15/Noviembre/2011 a las 23:11
No es que no se toque la consulta, es que la vas a modificar por código cada vez que pulses el botón.
Saludos
José Bengoechea Ibaceta
Mi página

Mi otra página
Arriba
DelaMC Ver desplegable
Habitual
Habitual


Unido: 29/Septiembre/2010
Localización: España
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 16/Noviembre/2011 a las 11:50
Pues nada Chea1,gracias a tu ayuda he visto por donde empezar,he adaptado la macro a las distintas consultas que tengo que crear y he comprendido cada linea del código y me a servido para crear nuevas y diferentes consultas con este método.Ahora estoy mirando como cuando creamos la consulta se pueda hacer en formato oculto.
Gracias por todo de nuevo
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable