Para evitar tener tres consultas idénticas que hacen referencia a diferentes formularios, puedes modificar la consulta para que tome el valor del campo de criterio desde una función en lugar de hacer referencia directa al formulario. De esta manera, puedes utilizar la misma consulta para los tres formularios, ya que la función se encargará de proporcionar el valor adecuado del criterio según el formulario desde el cual se esté ejecutando.
Sigue estos pasos para lograrlo:
1. Crea una función en un módulo de VBA que devuelva el valor del criterio basado en el formulario actual. Por ejemplo:
2. Modifica la consulta para que utilice la función como criterio en lugar del formulario. Supongamos que la consulta se llama "Consulta1" y el campo de criterio es "CampoCriterio". Deberás modificar la consulta de esta manera:
3. Ahora puedes utilizar la misma consulta "Consulta1" en los tres formularios. Al ejecutar la consulta desde cualquier formulario, la función `ObtenerCriterio()` se encargará de proporcionar el valor adecuado del criterio basado en el formulario desde el cual se esté ejecutando.
De esta manera, evitas duplicar la consulta y su lógica, ya que la función centraliza el cálculo del criterio. Solo asegúrate de que el campo de criterio en el formulario coincida con el campo utilizado en la función y la consulta.
Con este enfoque, cualquier cambio en la lógica del criterio solo deberá realizarse en la función, y se reflejará automáticamente en todos los formularios que utilizan la misma consulta.
Espero que esta solución te sea útil para optimizar tu consulta en Access y evitar la duplicación de código. ¡Buena suerte!