Como puedo hacer un filtro múltiple?

Tengo este código para un filtro de rango de fecha

if isnull  (me.v_fecha_inicial) and isnull (me.v_fecha_final) then 

vfecha=""

else 

vfecha="fecha between #" & format (nz ( me.v_fecha_inicial,#1/1/1900),"mm-dd-yyyy") & "#and#" format (nz ( me.v_fecha_inicial,#1/1/1900),"mm-dd-yyyy") & "#"

end if 

Este código me funciona a la perfección cuando filtro en un rango de fechas pero cuando lo intento llevar para que me filtre en otros campos como por ejemplo en un rango de meses que sea de enero o abrir o en min material me dice que me falta un operador

Como podría yo realizar un filtro en un rango que no sea de fechas

Respuesta
1

Alcides, no voy a discutir si lo que tienes puesto está bien o mal, pero ¿para qué quieres definir una variable cuando tienes los propios cuadros de texto?, y en lo format(... ya me perdí. Mira, si tengo una tabla Pedidos, que puedes ver que tiene 830 registros

Y tengo un formulario Pedidos, aunque podría ser en cualquier otro formulario, donde le he añadido dos cuadros de texto FInicial y FFinal y un cuadro de texto llamado Mes

Pongo un intervalo de fechas

Y cuando escribo la fecha final y pulso Enter, me lo deja reducido a los 213 registros de pedidos entre esas fechas

Por el contrario, si en el cuadro de texto escribo un número

Y pulso Enter

Me lo deja reducido a los 55 que se hayan pedido en el mes de Julio (no tiene en cuenta el año)

y el código no puede ser más sencillo

Private Sub FFinal_AfterUpdate()
Me.RecordSource = "select * from pedidos where fechapedido between #" & Me.FInicial & "# and #" & Me.FFinal & "#"
End Sub
Private Sub Mes_AfterUpdate()
Me.RecordSource = "select * from pedidos where month([fechapedido])= " & Me.Mes & ""
End Sub

no me funciona cuando realizó los pasos que me das la tabla se me queda en blanco aunque el del mes si funciona pero en las fechas se me queda en blanco cuando deseo filtrar un rango

puedes decirme como hacerlo con un rango  de mes?

¿Tienes definido FechaInicial y fecha final como formato Fecha Corta.?

Piensa que cuando escribes una fecha o fecha y hora, aunque tú pongas 17/10/2020 lo que realmente entiende el ordenador, al decirle que es una fecha corta, es lo que ves en la imagen

Es decir el día 17/10/2020 realmente es el 44121( días transcurridos desde el 31/12/1899). Los decimales son las horas, minutos y segundos.

Si no le dices con lo que va a trabajar(números), el ordenador entiende que es texto, y si escribes 07/10/2020, para él es lo mismo que si escribieras Pepe. Entonces equivaldría a poner

..."fecha between Pepe y María

Si lo vas a dejar como texto tendrías que ponerlo como

....."fecha between Cdate([fechainicial]) and Cdate([fechafinal])"

Es decir, conviérteme la cadena de texto Fecha Inicial en Fecha

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas