Formulario consulta entre fechas access 2007

He hecho la pregunta esta mañana pero no me sale, así que la hago de nuevo

Tengo una tabla "productos_tb" en el que hay un campo "fecha compra"

Para que me salgan los productos recibidos entre dos fechas determinadas hago la consulta y en el criterio de "fecha compra" uso ENTRE [Fecha de Inicio] y [Fecha de Fin], hasta aquí no hay problema, pero me gustaría crear un formulario en el que haya dos cajas de texto donde meter las fechas y que se genere el informe después pero no se cual es el código que tengo que usar. Para que la consulta reconozca el dato que hay en esas cajas

1 respuesta

Respuesta
1

Te explico cómo hacerlo:

- Crea el formulario en blanco y guárdalo con el nombre que quieras. Yo supondré que se llama FBuscaFechas.

- En ese formulario insertas dos textbox. Saca las propiedades del primero

- En la pestaña Formato -> Formato le seleccionas el formato "Fecha corta"

- En la pestaña Otras -> Nombre, le escribes txtFechaIni

- Haces lo mismo para el otro textbox, pero llámalo txtFechaFin

- Inserta un botón de comando. Sacas sus propiedades -> Eventos -> Al hacer click, y le generas el siguiente código:

...

Private Sub...

If not isnull(me.txtFechaIni.value) or not isnull(me.txtFechaFin.value) then

If me.txtFechaIni.value

docmd.openquery "NombreDeTuConsulta"

Else

msgbox "La fecha final no puede ser inferior a la inicial",vbExclamation,"AVISO"

End if

Else

msgbox "Ninguna fecha puede quedar en blanco",vbExclamation,"AVISO"

End If

End Sub

....

- En tu consulta, donde escribes los criterios del campo fecha, escribes lo siguiente

ENTRE Forms!FBuscaFechas.txtFechaIni.value Y Forms!FBuscaFechas.txtFechaFin.value

Si no te funciona bien prueba a escribirlo así:

<h3>ENTRE #Forms!FBuscaFechas.txtFechaIni.value# Y #Forms!FBuscaFechas.txtFechaFin.value#</h3>

Dos últimos comentarios:

- El código y la expresión los he escrito de cabeza, por lo que si te da algún error me comentas qué número de error te da con su descripción, y qué línea te marca en amarillo.

- La consulta ahora depende de los valores que haya en el formulario. Eso significa que no puedes probar la consulta directamente (haciendo doble click sobre ella) a menos que tengas el formulario abierto (en vista formulario) y con los textbox con fecha informada.

Muchas gracias, he hecho lo que me has comentado y me da un error de sintaxis en el código

If me.txtFechaIni.value

Ya cuando inserte el código en el botos este texto se me quedaba en color rojo.

Discúlpame, pues es una "colada" mía: tienes que añadir un then al final, así:

If me.txtFechaIni.value then

A ver si ahora te funciona.

Hola muchas gracias.

Como los datos se meten en un formulario que he creado como me dijiste, he puesto un aviso para que el usuario se acuerde de que la fecha final que escriba ha de ser igual o posterior a la inicial, je je.

He usado tu código y añadido acceso al informe relacionado con la consulta y funciona perfectamente

Te dejo el código por si le sirve a alguien

Private Sub cmdInforme_Click()
If Not IsNull(Me.txtFechaIni.Value) Or Not IsNull(Me.txtFechaFin.Value) Then
DoCmd.OpenReport "ProductosFecha", acViewPreview
DoCmd.RunCommand acCmdPrint
DoCmd.Close acReport, "ProductosFecha"
DoCmd.Close acForm, "FBuscaFechas"
Else
MsgBox "Ninguna fecha puede quedar en blanco", vbExclamation, "AVISO"
End If
End Sub

En la consulta he puesto en el criterio de la fecha

ENTRE [Forms]![FBuscaFechas].[txtFechaIni.value] Y [Forms]![FBuscaFechas].[txtFechaFin].value

Un saludo y muchas gracias

Me alegra muchísimo que te haya funcionado bien y te agradezco que hayas tenido el detalle de indicar con claridad el código y procedimiento que funcionan.

Te rogaría que no te olvidaras de valorar y cerrar la pregunta ;)

Un placer.

Siempre es un placer si neckkito te contesta a tus dudas.

La respuesta ha sido rápida y adecuada a la necesidad.

Muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas