Tengo una base de datos de transportes y tengo las facturas clasificadas en fechas dd/mm/aaaa.

Me gustaría solo al introducir el mes que aparezca los datos.

2 respuestas

Respuesta
2

No dices donde vas a ver los datos.

1º Vamos a suponer que lo quieres ver en un formulario llamado Verfacturas, distinto del que usas para poner los datos. En éste último puedes poner un botón de comando y en sus Propiedades-eventos-al hacer click, crea un procedimiento de evento y entre Private Sub y End sub pon

DoCmd.OpenForm "verfacturas", , , "month([fechaventa]) like [Que mes quieres ver]", , acDialog

Así cuando lo pulses se abrirá el formulario Verfacturas solo con los registros que cumplan que el mes sea 2, 5 10.

Si quisieras que se viera como Febrero, Mayo, etc en vez de Month(.... tines que poner Format([fechaventa],"mmmm") like...

2º Si es en un informe, lo mismo pero con

Docmd.openreport"verfacturas"...

Lo siento por no decir los donde los quiero ver, lo quiero ver en una consulta osea que cuando ejecute la consulta me pregunte el mes de las facturas que quiero ver

Es que he tenido que salir y no podía escribir más.

3º Si es desde el mismo formulario donde metes los datos, pon también un botón y en sus propiedades-eventos-Al hacer clic- procedimiento de evento y entre Private Sub y End sub escribe:

Form.RecordSource = "select * from proveedores where month([fechaventa]) like [escribe un mes]"

Cambia proveedores por el nombre de la tabla origen del formulario.

En fin, hay muchas posibilidades. Si puedes ampliar mejor

Si es en una consulta, lo mejor es que en el diseño de la consulta crees un campo

Mes:mes([fechaventa])

y abajo en Criterio pon [escribe un mes]

Y en el código del botón del formulario

Docmd. Openquery"nombredelaconsulta"

Así cuando pulses el botón te preguntara el mes, pones 7 y se abre la consulta con los registro que tengan ese mes.

Respuesta
1

Necesitas pasarle a la consulta los parámetros el año y mes a consultar, no solamente el mes porque te va mostrar todos los meses sin importar el año. Debes crear un formulario con 2 campos tipo combo de lista, uno para el año y otro para el mes más un botón para ver la consulta.

Supongamos que el formulario lo llamas frmConsulta

1. Combo del año llámalo cboPeriodo y origen de datos coloca lista de valores, este lo llenaremos al abrir el formulario mediante código.

2. Combo del mes llámalo cboMes y con el asistente elige lista de valores y escribe;

 1;"Enero"; 2;"Febrero";3;"Marzo".............. 12;"Diciembre"

3. En el evento Al Abrir del formulario coloca el siguiente código:

Dim x As Integer

Fox x=2000 To 2050

   Me.cboPeriodo.AddItem=x

Next x

No cierres el formulario lo necesitamos para modificar la consulta.

Supongamos que la consulta se llama qryTransportes:

Y que tiene el campo FechaTrans, incluye esta campo en la cuadricula de la consulta escribe Year([FechaTrans] )= y con el asistente Generar.... en criterios busca el formulario frmConsulta y elige el combo cboPeriodo, da clic en aceptar, ahora agrega AND Month([FechaTrans])= y repite Generar pero agrega el combo cboMes. Debe quedar en criterio algo como:

Year([FechaTrans])=Forms!frmConsulta!cboPeriodo AND Month([FechaTrans])= Forms!frmConsulta!cboMes

Con esto hacemos que la consulta dependa del formulario.

4. Estando el formulario en vista diseño arrastra la consulta qryTransportes hasta el formulario, esto crea un subformulario para ver el resultado de la consulta.

Supongamos que el objeto incrustado se llama subqryTransportes.

5. Crea un botón de comando por ejemplo, btnVer y le adicionas este código:

En el evento después de actualizar adiciona:

   Me.subqryTransportes.Form.Requery

Con esto cada vez que cambies los datos de año y mes obtendrás los resultados.

Hay varias formas de obtener el resultado, ya sea mediante SQL o creando la consulta por VBA.

Corrijo en el botón btnVer es el evento Al hacer Clic y no después de actualizar

La pregunta no admite más respuestas

Más respuestas relacionadas