Actualizar consulta de origen con un botón en formulario

Tengo una consulta como origen de un formulario. Esta consulta hace una selección de registros entre fechas, o sea en la consulta, en criterios elijo dos fechas (entre y hasta) y me selecciona los registros que busco-

En el formulario tengo dos cuadros de texto (desde, hasta) donde pongo las fechas que serian el periodo del cual necesito los registros.

Ahora bien en la consulta me pregunta el valor de estos dos cuadros de texto donde se ingresaran las fechas, las coloco y me selecciona sin problemas los registros. Cuando quiero hacerlo en el formulario a través de un botón al que le puse el código "me.form.requery " no me hace la selección.

¿Cómo podría hacer para que al apretar el botón me aparezcan solo los registros seleccionados?

Aclaro que es un formulario continuo, no un subformulario.

Supongo que seria como actualizar el origen de los datos del formulario con las fechas nuevas

Este es el código que esta en la consulta que cuando abre el formulario y no tener las fechas (desde, hasta) al no tener fecha secciona todos los registros...

>=SiInm(EsNulo([Formularios]![FRM_GASTOS_REALIZADOS]![desde]);[TBL_GASTOS]![FECHA];[Formularios]![FRM_GASTOS_REALIZADOS]![desde]) Y <=SiInm(EsNulo([Formularios]![FRM_GASTOS_REALIZADOS]![hasta]);[TBL_GASTOS]![FECHA];[Formularios]![FRM_GASTOS_REALIZADOS]![hasta])

2 respuestas

Respuesta
2

La verdad es que no veo donde tienes el error, porque aparentemente lo que haces es correcto y te debiera funcionar. Lo único que se me ocurre es que haya algún problema en el botón y no tenga efectivamente asociado el código al evento, porque si los nombres de los cuadros de texto fueran otros (es decir, ni desde ni hasta), te tendría que salir la ventanita para preguntarte las fechas...

Como muestra, te adjunto un archivo ( http://www.filebig.net/files/qJw7m9kite ) con tres formularios basados en tres consultas con 3 formas de establecer el filtro (uno directamente por el usuario, otro con cuadros de texto en el formulario, y el tercero también desde cuadros de texto del formulario y con unos criterios como los tuyos). Verás que en los tres casos funciona bien y recalcula los resultados al pulsar el botón. Revisa el ejemplo y compáralo con lo que tu tienes, a ver si ves "algo" diferente.

Por comentarlo: podrías haber usado Me. Requery en lugar de Me.Form. Requery, y así escribes menos. Pero ambas formas funcionan exactamente igual

Respuesta
2

Por aportar otra posible solución. Vamos a suponer que el formulario depende de una tabla Ventas. No hacen falta los cuadros de texto. En el evento Al hacer clic del botón crea un procedimiento de evento y entre Private Sub y End sub pon

me.recordsource="select * from Ventas where Fechaventa between [Escriba una fecha inicial, en formato dd/mm/aaaa] and [Escriba una fecha final, mismo formato]"

Así, cuando pulses el botón te pedirá que escribas la fecha inicial. La escribes, aceptas y te pedirá la fecha final. Lo mismo. Entonces el origen de registros del formulario serán aquellos de la tabla Ventas en que el campo FechaVenta esté comprendido entre los que has escrito.

¡Gracias! No encuentro el error en mi código, pero debe estar en el "SiInm" seguramente, con más tiempo voy a revisarlo para no quedarme con la duda. Probé su sugerencia y me funciono de esa manera, inclusive le agregue los cuadros de texto al código y me filtra de maravillas. Quedo así en el botón:

Me.RecordSource = "select * from CON_GASTOS_REALIZADOS where FECHA between FORMS!FRM_GASTOS_REALIZADOS!desde and FORMS!FRM_GASTOS_REALIZADOS!hasta"

Muchísimas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas