Consulta por 1 fecha o entre 2 fechas

Dudas sobre Tablas, Consultas, Formularios, Informes...
crossico
Nivel 1
Mensajes: 11
Registrado: Vie Abr 08, 2016 12:07 pm

Consulta por 1 fecha o entre 2 fechas

Mensajepor crossico » Lun May 23, 2016 12:31 pm

Hola soy nuevo en el foro, estoy haciendo una bd de gastos e ingresos.

Mi duda surge en una consulta de busqueda por fecha o fechas:

A veces solo necesito buscar datos por una sola fecha, ejemplo: 20/5/16 y otras veces consultar entre 2 fechas, ejemplo: 19/5/16 y 20/5/16.

En una misma consulta se puede aplicar los 2 casos? tengo puesto esto: Entre [DESDE FECHA] Y [HASTA FECHA] y no se como hacer para que al meter solo una fecha me salgan solo los datos de esa fecha y al meter las 2 fechas me salgan los datos entre esas dos fechas.

No tengo ni idea de como hacerlo, gracias con antelacion :roll: :roll:

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1393
Registrado: Sab Oct 24, 2015 10:12 pm

Re: Consulta por 1 fecha o entre 2 fechas

Mensajepor Sveinbjorn » Lun May 23, 2016 1:16 pm

Hola y bienvenido!

Te cuento cómo lo haría yo, si quisiera trabajar con consultas, lo que no quiere decir que sea la mejor forma, ni la única:

1º/ Un formulario (FBuscarFechas) con dos cuadros de texto (txtFechaDesde y txtFechaHasta) y un botón de comando (cmdMostrar)

2º/ Dos consultas que se diferenciarían por los criterios: en una un criterio para una única fecha, y la otra con el criterio para el intervalo. Además, los criterios harían referencia a esos cuadros de texto del formulario:
Criterio una fecha: Formularios!FBuscarFechas!txtFechaDesde
Criterio dos fechas: Entre Formularios!FBuscarFechas!txtFechaDesde Y Formularios!FBuscarFechas!txtFechaHasta

3º/ En el evento "Al hacer click" del botón, éste código:
If Isnull(Me.txtFechaHasta) Then
DoCmd.OpenQuery "Consulta1Fecha"
Else
DoCmd.OpenQuery "Consulta2Fechas"
End If


Otra opción que se me ocurre, ya sin trabajar con consultas, sería crear filtros en un formulario, o en un subformulario.

Y si no quieres hacer nada de eso, siempre tienes la opción de poner como fecha inicial y final la misma (aunque la tendrás que teclear 2 veces...) :roll:

Un saludo
Sveinbjorn El Rojo

emiliove
Colaborador
Reto04
Mensajes: 394
Registrado: Lun Nov 23, 2015 4:05 pm

Re: Consulta por 1 fecha o entre 2 fechas

Mensajepor emiliove » Lun May 23, 2016 3:26 pm

Sveinbjorn

En el evento "Al hacer click" del botón, éste código:

Código: Seleccionar todo

If Isnull(Me.txtFechaHasta) Then
DoCmd.OpenQuery "Consulta1Fecha"
Else
DoCmd.OpenQuery "Consulta2Fechas"
End If



También pudiera ser con solo la Consulta2Fechas. En el evento "Al salir o después de actualizar de Me.txtFechaHasta "

Código: Seleccionar todo

If Isnull(Me.txtFechaHasta) Then
Me.txtFechaDesde=Me.txtFechaHasta
DoCmd.OpenQuery "Consulta2Fechas"
End If


Saludos.

crossico
Nivel 1
Mensajes: 11
Registrado: Vie Abr 08, 2016 12:07 pm

Re: Consulta por 1 fecha o entre 2 fechas

Mensajepor crossico » Mar May 24, 2016 6:39 pm

Gracias Sveinbjorn y emiliove,

Hice tal y como me dijiste Sveinbjorn, formulario, botón y código, sólo que también utilice la ayuda de emiliove. La verdad es que no se si se hace asi (no tengo ni idea de código, pero funciona).

En el evento "Al hacer click" del botón, éste código:

Código: Seleccionar todo

Private Sub bprueba_Click()
If IsNull(Me.txtFechaHasta) Then
Me.txtFechaHasta = Me.FechaDesde
DoCmd.OpenQuery "Consulta2Fechas"
End If
If IsNull(Me.txtFechaDesde) Then
Me.txtFechaDesde = Me.txtFechaHasta
DoCmd.OpenQuery "Consulta2Fechas"
End If
End Sub


Edito (6:45 pm):
:shock: :shock: mmm... no funciona, no.

Por lo visto estoy diciendo que sean la misma fecha... y ahora cuando introduzco distintas no, no funciona :mrgreen: :mrgreen:

Alguna ayuda en el código? :ugeek:

Edito again (7:03 pm):
Creo que lo solucione... me falto algo despues del End If... :roll: :roll:


Código: Seleccionar todo

Private Sub bprueba_Click()
If IsNull(Me.txtFechaHasta) Then
Me.txtFechaHasta = Me.FechaDesde
DoCmd.OpenQuery "Consulta2Fechas"
End If
If IsNull(Me.txtFechaDesde) Then
Me.txtFechaDesde = Me.txtFechaHasta
DoCmd.OpenQuery "Consulta2Fechas"
End If
DoCmd.OpenQuery "Consulta2Fechas"
End Sub


Gracias
Última edición por Sveinbjorn el Mar May 24, 2016 7:30 pm, editado 1 vez en total.
Razón: Editado por moderador para eliminar "triple post"

Avatar de Usuario
javiteran
Colaborador
Reto11
Mensajes: 222
Registrado: Mié Dic 02, 2015 8:11 pm

Re: Consulta por 1 fecha o entre 2 fechas

Mensajepor javiteran » Mar May 24, 2016 7:17 pm

Como lo has puesto ejecuta dos veces el openquery de la tabla.
Quizás sería mejor ponerlo así.

Código: Seleccionar todo

Private Sub bprueba_Click()
   If IsNull(Me.txtFechaHasta) Then
      Me.txtFechaHasta = Me.FechaDesde
   ElseIf IsNull(Me.txtFechaDesde) Then
      Me.txtFechaDesde = Me.txtFechaHasta
   End If
   DoCmd.OpenQuery "Consulta2Fechas"
End Sub

Un saludo.

crossico
Nivel 1
Mensajes: 11
Registrado: Vie Abr 08, 2016 12:07 pm

Re: Consulta por 1 fecha o entre 2 fechas

Mensajepor crossico » Jue May 26, 2016 7:53 pm

Gracias javiteran, probado y funcionando. :D


Volver a “Objetos Access”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados