Access - Criterio consultas access

   
Vista:
Imágen de perfil de Manuel

Criterio consultas access

Publicado por Manuel (4 intervenciones) el 12/02/2014 02:16:55
Buenos días

En consulta con campo fecha quiero hacer criterio selección Entre[Fecha_inicial] y [Fecha_Final] y por otro lado la fecha actual =fecha(). Es decir cuando ejecuto consulta si no escribo nada en casillas Fecha_Inicial_fianl me aparezca la fecha actual y si escribo algo NO me aparezca la fecha actual. La primera parte es fácil, lo que no consigo es que al completar el intervalo de fechas no me aparezca incluido la fecha actual.

Gracias de antemanos

maba&nca
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
Imágen de perfil de Neckkito

Criterio consultas access

Publicado por Neckkito (1104 intervenciones) el 13/02/2014 14:20:36
Hola!

Hasta donde yo sé no es posible parametrizar la consulta como quieres. Tienes que hacerlo a través de código VB.

Una sistemática sería la siguiente:

1.- Te creas una consulta sobre la tabla que contiene los datos. Añades un sólo campo y la guardas con el nombre que quieras (yo la llamaré CDatos).
2.- En un formulario añades un botón de comando. En su evento "Al hacer clic" (Propiedades -> Pestaña Eventos) le generas el siguiente código (que deberás adaptar a los nombres de tus objetos:
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub...
        'Declaramos las variables
    Dim FIni As String, FFin As String
    Dim miSql As String
    Dim miQry As DAO.QueryDef
        'Solicitamos la información
    FIni = InputBox("Fecha inicio", "FECHA")
    FFin = InputBox("Fecha fin", "FECHA")
        'Comprobamos los valores introducidos
    If FIni = "" Then
        miSql = "SELECT * FROM Tabla1 WHERE Tabla1.Fecha=#" & Format(Date, "mm/dd/yy") & "#"
    Else
        If FFin = "" Then
            MsgBox "No hay datos para mostrar", vbInformation, "SIN DATOS"
            Exit Sub
        Else
            FIni = CDate(FIni)
            FFin = CDate(FFin)
            miSql = "SELECT * FROM Tabla1 WHERE Tabla1.Fecha BETWEEN #" _
                    & Format(FIni, "mm/dd/yy") & "# AND #" & Format(FFin, "mm/dd/yy") & "#"
        End If
    End If
        'Asignamos la SQL a la SQL de la consulta
    Set miQry = CurrentDb.QueryDefs("CDatos")
    miQry.SQL = miSql
        'Abrimos la consulta
    DoCmd.OpenQuery "CDatos"
End Sub
...

Por si no lo ves claro aquí tienes un ejemplo: https://www.mediafire.com/?my5w18hmeukeal8

Un saludo,

http://neckkito.siliconproject.com.ar
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