Filtrar o agrupar por dos opciones

Tengo este formulario

Por el cual en Nombre tengo este evento  Me.RecordSource = "select * from ConsultaFacturas where ([Nombre])=(forms!Principal!Nombre)"

y en Fecha factura este otro  Me.RecordSource = "select * from ConsultaFacturas where year([Fecha])=year(forms!Principal!Fecha)"

si clic en Nombre me filtra por el como se ve en la imagen

Pero si ahora clic en Fecha factura en el 05-feb-23 aparece esto y solo quisiera los de Prueba del año 23

Y no se como añadir en la instrucción para que filtre solo Prueba del 23

Si me pueden decir como debo de hacerlo.

3 respuestas

Respuesta
1

Carlos, habría que saber como lo tienes construido, ya que si tengo el formulario Pedidos, donde puedes ver que hay 831 registros

Y hago clic en cualquier fecha

Me los deja reducidos a los 152 del año 1996(bendita base Neptuno)

Y el código del evento Al hacer clic(aunque personalmente lo pondría en otro evento) es

Private Sub FechaPedido_Click()
Me.RecordSource = "select * from pedidos where year([fechapedido])=year(#" & Me.FechaPedido & "#)"
End Sub

En tu caso, al querer además que sólo sean los de prueba sería

Private Sub FechaPedido_Click()
Me.RecordSource = "select * from pedidos where year([fechapedido])=year(#" & Me.FechaPedido & "#) and nombre='" & Me.prueba & "'"
End Sub

De forma que, si en el cuadro de texto Nombre aparece Prueba y pulsas en Fecha, sólo te muestra aquellos registros de ese año y que tengan Prueba en el campo Nombre. En caso de que en el control Nombre apareciera Emecele, sólo te mostraría los de ese año y Emecele.

Gracias por contestar.

No me funciona, lo que no entiendo es de donde sacas pedidos y FechaPedido

me da este error

He cambiado los nombres y este error

Se lo puse así y tampoco me funciona.

Me.RecordSource = "select * from ConsultaFacturas where year([Fecha])=year(forms!Principal!Fecha)and(forms!Principal!Nombre)"

Como tengo tu correo ¿quieres qué te mande un ejemplo?

Respuesta
1

Es sencillo:

Si se hace click en un objeto se filtra por el dato adecuado (lo actual).

Si se hace doble click (es otro evento) se aúnan ambas condiciones y se aplica

Originales (evento click):

Me.RecordSource = "select * from ConsultaFacturas where ([Nombre])=(forms!Principal!Nombre)"
 Me.RecordSource = "select * from ConsultaFacturas where year([Fecha])=year(forms!Principal!Fecha)"

En el evento doble click: 

Me.RecordSource = "select * from ConsultaFacturas where Year([Fecha]) = Year(forms!Principal!Fecha) AND Nombre = Forms!Principal!Nombre"
Respuesta
1

Envíeme su base de datos con información ficiticia y le resuelvo a [email protected], para no entrar en imágenes y código que lo pueden confundir.

Tenga cuidado con "la basura" que le ofrece este inexperto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas