Imprimir página | Cerrar ventana

Formulario consultar contratos vigentes por fecha

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=81412
Fecha de impresión: 15/Diciembre/2019 a las 22:02


Tema: Formulario consultar contratos vigentes por fecha
Publicado por: lee
Asunto: Formulario consultar contratos vigentes por fecha
Fecha de publicación: 21/Enero/2016 a las 11:12
Buenos dias,
Tengo una bbdd con unos contratos que tienen la fecha de inicio y la fecha de final.
Me gustaria crear un formulario que ya me servira para imprimir los campos necesarios y que me pida una fecha y compruebe si esta entre las dos fechas del contrato.
La idea es poner este filtro en el mismo formulario, no a traves de una consulta.
Ahora tengo esto que se supone que muestra las fechas de inicio iguales o superiores a la que pongo y la de final lo mismo.
pero mer gustaria que solo pida una fecha i compruebe si esta dentro de las dos que tengo.
Espero que me haya explicado.
Esto esta hecho con acces 2010, creo que otras versiones anteriores no podias poner filtros...

(([Nombreform].[FechaInicio]>=['Fecha inicio que solicita']) And ([Nombreform].[Fechafinal]<=['Fecha final que solicita']))

Saludos



Respuestas:
Publicado por: OmniPresente
Fecha de publicación: 21/Enero/2016 a las 12:07
Mírate las propiedades Filter y FilterOn del formulario; las puedes utilizar para aplicar un filtro sin tener que modificar el origen de datos.

Un saludo.


Publicado por: lee
Fecha de publicación: 21/Enero/2016 a las 14:07
Hola,
Este codigo és el que pongo en el apartado filtro de las propiedades del formulario.
La duda esta en que codigo debo ponerle en este apartado para que hago lo que quiero.
Saludos


Publicado por: mounir
Fecha de publicación: 21/Enero/2016 a las 15:29
Hola!

Mírate esta rutina en la página del maestro Mihura (Jesús)y adaptala a tus necesidades.

http://www.accessaplicaciones.com/ejemplos.html" rel="nofollow - Comprobar citas

-------------
Un Saludo.


Publicado por: lee
Fecha de publicación: 21/Enero/2016 a las 18:26
Hola, he estado mirando y parece para agregar codigo y me gustaria como el ejemplo que he pasado, pero que compruebe la fecha que yo le pongo si esta entre las dos que hay.
solo para poner el codigo en el mismo formulario. 
como puedes comprovar no domino mucho el tema de programacion

Gracias


Publicado por: mounir
Fecha de publicación: 21/Enero/2016 a las 18:38
Hola!

¿Has utilizado la Función If-Then-Else-End If ?.


If(Forms![Nombreform].[FechaInicio]>=[Fecha inicio que solicita]) And (Forms![Nombreform].[Fechafinal]<=[Fecha final que solicita]) Then
   'Poner un mensaje o lo que sea
Else
'Poner otra opción

End If



-------------
Un Saludo.


Publicado por: lee
Fecha de publicación: 21/Enero/2016 a las 19:47
Hola Mounir, 
pues no havia utilizado estas funciones. 
ahora he probado esta que me has pasado y dice:
me dice que le falta operador en la expresión de la consulta. 
entiendo que esto es el nombre de un campo... y estan todos bien... 
seguiré buscando pero si me puedes ayudar te lo agradeceré. 
saludos


Publicado por: MexMan70
Fecha de publicación: 21/Enero/2016 a las 19:50
Para establecer un filtro en un formulario: 

Me.Filter = "[FechaInicio]>=#" & Format(Me.LaFecha,"mm/dd/yyyy") & "# AND [Fechafinal]<=#" & Format(Me.LaFecha,,"mm/dd/yyyy") & "#"
Me.FilterOn = True

Donde Me.LaFecha sería el control donde ingresaría la fecha a usar como filtro.

Mira en la ayuda de Access para mayor información acerca de las Propiedades Filter y FilterOn


-------------
OneDrive: http://sdrv.ms/Vk6eJd


Publicado por: lee
Fecha de publicación: 21/Enero/2016 a las 20:41
Hola, 
sigo igual, me dice que le falta algo, aunque no acabo de entender el que. 
Parece que esto código tendría que pedirme dos fechas. 
Y lo que necesito es que al ponerle la fecha de hoy (por ejemplo), compruebe si está entre la fecha de inicio y de fin, y muestre los contratos que estan vigentes. 
quizás no me he explicado bien, y con mi dominio 0 de programación supongo es difícil 
Gracias


Publicado por: mounir
Fecha de publicación: 21/Enero/2016 a las 20:49
Hola!

Creo que la mejor forma es la que te indicó el maestro MexMan70.
aqui te dejo un enlace a un ejemplo que hace lo que necesitas y detalla lo que te comentó MexMan70

http://www.accessyexcel.com/microsoft-access-filtrar-formulario-usando-vba-filtrando-fechas/" rel="nofollow - http://www.accessyexcel.com/microsoft-access-filtrar-formulario-usando-vba-filtrando-fechas/

suerte!

-------------
Un Saludo.


Publicado por: MexMan70
Fecha de publicación: 21/Enero/2016 a las 21:23
Pregunto: que has hecho ? Puedes pegar el código que has usado ?

No te limites a copiar y pegar, mira en la ayuda como te he sugerido.


-------------
OneDrive: http://sdrv.ms/Vk6eJd


Publicado por: lee
Fecha de publicación: 22/Enero/2016 a las 07:59
Hola Mounir,
este ejemplo esta muy bien, y quizas pueda cambiar el sistema que tenia pensado de hacerlo y aplicar un sistema con botones para consultar el formulario. Y cada boton con su codigo.

Pero el ejemplo tiene en la bbdd un campo fecha y su consulta es: que fecha de la bbdd esta dentro de las dos que escribo.
Yo necesito al reves, escribir una fecha y preguntar si esta fechas esta dentro del rango de fechas del contrato.

seguiremos :)

Gracias


Publicado por: lee
Fecha de publicación: 22/Enero/2016 a las 08:05
Publicado originalmente por MexMan70 MexMan70 escribió:

Pregunto: que has hecho ? Puedes pegar el código que has usado ?

No te limites a copiar y pegar, mira en la ayuda como te he sugerido.


Hola Mounir,
yo tenia este codigo que funciona. Me pide la fecha de inicio y la de final i compara que la primera sea igual o superior, y la de final igual o inferior.
(([Nombreform].[FechaInicio]>=['Fecha inicio que solicita']) And ([Nombreform].[Fechafinal]<=['Fecha final que solicita']))

Pero lo que quiero es una sola fecha saber si esta dentro del rango del contrato.

Este codigo lo pongo en propiedades del form, datos, filtro. y la opcion de cargar el filtro esta activada.

Saludos


Publicado por: E. Feijoo
Fecha de publicación: 22/Enero/2016 a las 10:47
Si los datos limites (superior e inferior) son datos conocidos y accesibles, no debería preguntar por ellos, en todo caso localizarlos (para lo que se debería tomar como referente el contrato).

Se supone que 'el contrato' es conocido, con lo que lo único que se precisa (y debería preguntar) es la fecha a evaluar, dato que si se tomase del formulario actual .... no lo preguntaría.

Para obtener los limites de fechas del contrato implicado, se puede utilizar la función DLookup (hay mas métodos, pero este es sencillo y mas que suficiente para el caso actual)

Por cierto .... los filtros SIEMPRE han funcionado en todas las versiones de Access (que churro de aplicación seria si eso no fuera funcional), otra cosa es que en función de las versiones y para acercarse a los nuevos usuarios se le fuesen añadiendo atajos y utilidades (siempre he pensado que esas facilidades consideran o vuelven indolentes a los usuarios ya que las usan sin saber para que sirven).


Publicado por: lee
Fecha de publicación: 23/Enero/2016 a las 13:14
Hola
no se como pero de momento parece que me hace la consulta al abrir el form, 
la pregunta ahora es otra... que codigo debo poner a un boton para que haga esta consulta?

((([nombreform].[fehcaInicio]<=[data]) AND ([nombreform].[DataFi]>=[data]))) 

Gracias


Publicado por: MexMan70
Fecha de publicación: 23/Enero/2016 a las 15:46
Hola lee: Ya te lo he indicado

Publicado originalmente por MexMan70 MexMan70 escribió:

Para establecer un filtro en un formulario: 

Me.Filter = "[FechaInicio]>=#" & Format(Me.LaFecha,"mm/dd/yyyy") & "# AND [Fechafinal]<=#" & Format(Me.LaFecha,,"mm/dd/yyyy") & "#"
Me.FilterOn = True

Donde Me.LaFecha sería el control donde ingresaría la fecha a usar como filtro.

Mira en la ayuda de Access para mayor información acerca de las Propiedades Filter y FilterOn




-------------
OneDrive: http://sdrv.ms/Vk6eJd


Publicado por: lee
Fecha de publicación: 23/Enero/2016 a las 16:52
Perdona MexMan70, lo vi pero me daba un error y ya me fui a provar otra cosa, 
sigo igual...
no sé si es esto lo que deberia poner...
Me.lafecha supongo sera el campo que me tiene que pedir al ejecutar el boton...
si esta bien me da un error se esperaba then o go to

Private Sub Comando73_Click()

Me.Filter = "[Nombre del campo de la fecha inicio]>= #" & Format(Me.LaFecha, "mm/dd/yyyy") & "# AND [Nombre del campo de la fecha final]<=#" & Format(Me.LaFecha, "mm/dd/yyyy") & "#"

Me.FilterOn = True
End Sub


Publicado por: VIMIPAS
Fecha de publicación: 23/Enero/2016 a las 17:44
Hola lee, buenas tardes (saludos a Roberto).

Lee, me puedes decir el nombre real de tu campo en la tabla, pues dices:

[Nombre del campo de la fecha inicio]


Por cierto, mientras que estoy esperando a que me contestes, se me ocurre preguntarte también (por lo tanto edito mi mensaje anterior):

¿Como le llamas, realmente, tu, a los controles de texto que has puesto en el formulario para ponerles la fechamenor y la fechamayor?.

Quiero decir, que nosotros estamos partiendo de que tienes dos controles de texto para poner las fechas de inicio y de fin, en cada uno de ellos y luego pulsas Click en un botón de comando.

Si esto es así, pregunto otra vez ¿cómo les llamas tu realmente a estos dos controles?.


Te espero.

Saludos


-------------
Gracias


Publicado por: lee
Fecha de publicación: 23/Enero/2016 a las 19:07
Hola Vimipas
perdona que no he respondido antes pero me estoy peleando con esto...
ya he conseguido que me funcione la consulta del boton.   Smile
Era de la forma que decia MexMan70. (Gracias)

Ahora voy a provar de añadir una segunda consulta en el mismo boton, espero que me funcione, sino ja os pido ayuda :)
Saludos



Publicado por: emiliove
Fecha de publicación: 23/Enero/2016 a las 19:41
Entonces ya se soluciono, ¿podemos cerrar el hilo?



Publicado por: lee
Fecha de publicación: 23/Enero/2016 a las 19:43
si, gracias



Imprimir página | Cerrar ventana