Ayuda al hacer una consulta a una base de datos desde un formulario utilizando Microsoft Access

Hola Salmon, tengo un pequeño problema y espero que puedas ayudarme.
Tengo una consulta en la cual el criterio de una fecha lo tiene que coger automáticamente del valor de un control calendario que tengo en otro formulario (el formulario se llama "Parte"). Yo he metido lo siguiente en el apartado criterio [Formularios]![Parte]![CtrlActiveX77].[Value], donde el CtrlActiveX77 es el control calendario que te he comentado. Cuando ejecuto la consulta me sale una ventana donde me pide que introduzca el valor del parámetro Formularios! Parte!CtrlActiveX77. Valor
Por supuesto, el formulario parte está ejecutándose cuando realizo la consulta.
Muchas gracias

1 Respuesta

Respuesta
1
Tu problema es que no puedes tratar el control calendar como intentas. No se porque, pero no se puede acceder al valor de la fecha de esa manera. Es un comportamiento extraño por parte del control, que yo suelo solucionar con un control más, un cuadro de texto en el mismo formulario en el que, mediante código, coloco la fecha que marca el calendar, y luego, en el criterio para la consulta, miro ese cuadro de texto, no el calendar.
Para que esto te funcione, justo antes de llamar a la consulta (o abrir el informe basado en la consulta, o el el formulario, o lo que sea que necesite comprobar esa fecha) hay que escribir:
Fecha = ActiveXCtl77
Donde Fecha es el nombre del cuadro de texto auxiliar que utilizo.
Ahora, el criterio quedara:
[Formularios]![Parte]![Fecha].[Value]
Pues he hecho algo parecido a lo que comentas y me sigue pasando lo mismo. En el formulario he creado un TextBox donde le meto la fecha del control calendario, algo así, Texto88. Text = "#" & CtrlActiveX77. Value & "#" y luego en la consulta pongo el siguiente criterio [Formularios]![Parte]![Texto88].[Texto], pero cuando la ejecuto, en lugar de coger el valor del TextBox, me sigue saliendo una ventana donde me piede que meta el valor del parámetro Formularios! Parte!Texto88. Texto.
Un saludo y gracias.
Andrés Rodríguez
MMM, tiene pinta de no estar referencaindo bien. La verdad es que lo que haces es lo que hay que hacer. Descartados errores de sintaxis, solo me queda pensar en un problema de referenciacion.
Prueba a quitar los #, a quitar los .Value, los .Texto, a combinar poniendo uno y otro no, tiene que funcionar. Así es como se hace eso.
Suerte.
Ya me dirás.
Bueno, al final he conseguido que haga lo que quiero. Como lo que quiero es imprimir un informe de la consulta, lo que he hecho ha sido pasarle el criterio en la orden del informe, me explico. He creado una variable glogal tipo string en un modulo llamada FechaParte. Cuando carga el formulario o hago click en el control calendar asigno la fecha del control calendar a FechaParte (FechaParte = "#" & CtrlActiveX77.Value & "#")he puesto un boton en el formulario con el siguiente codigo;
Private Sub Comando90_Click()
Dim Criterio As String
Criterio = "Fecha=" & FechaParte
DoCmd.OpenReport "ParteTrabajo", , , Criterio
End Sub
El Informe ParteTrabajo está basado en la consulta y en esa consulta, el criterio Fecha lo he quitado. Y la cosa funciona.
Lo único, es que tal como está, me lo imprime directamente (que es lo que quiero que acabe haciendo), pero ahora, me interesaría que me presentara en pantalla el informe, pues con las pruebas que me faltan voy a gastar mucho papel :) ¿Sabes cómo hacerlo?
Entonces ya lo tienes. Esa forma que has usado es perfectamente valida para quedarse así.
Para tus pruebas, simplemente cambia la linea
DoCmd. OpenReport "ParteTrabajo",,, Criterio
por esta otra
DoCmd. OpenReport "ParteTrabajo", acViewPreview,, Criterio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas