Access - Solo una consulta

 
Vista:

Solo una consulta

Publicado por yanira (140 intervenciones) el 27/11/2006 18:08:38
Tengo una consulta en access que para ejecutarse necesita tomar en criterio el valor de un formulario.
Es la misma consulta para tres formularios diferentes.
Por lo tanto tengo tres veces la misma consulta haciendo el llamado a su respectivo formulario. Como hago por codigo para que me quede una sola consulta, es decir, para que el valor del campo lo tome por una funcion o algo asi.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Utilizar una función para pasar criterios a una consulta

Publicado por Alejandro (4142 intervenciones) el 28/07/2023 19:39:51
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:

1
2
3
4
5
6
7
Function ObtenerCriterio() As Variant
    Dim frm As Form
    Set frm = Screen.ActiveForm
 
    ' Reemplaza "NombreCampo" por el nombre del campo que necesitas como criterio en la consulta
    ObtenerCriterio = frm!NombreCampo
End Function

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:

1
2
3
SELECT *
FROM NombreTabla
WHERE CampoCriterio = ObtenerCriterio()

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!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar