Ejecutar una consulta que este en una tabla

Buenas tardes,
Espero me podáis ayudar,
Tengo una tabla con un campo llamado consulta.
Nombre Tabla: Consultas.
Campo_1 : Consulta
En el campo_1 tendria el valor por ejemplo select * from tabla_1;
La pregunta es como puedo ejecutar esta consulta si la tengo en esta tabla o existe alguna forma de sacar dicha consulta y ejecutarla como normalmente se hace,
Espero haberme explicado bien, no puedo hacer la consulta como normalmente se hace ya que estoy trabajando con fórmulas dinámicas y muchos registros,
Muchas gracias por vuestra atención.
Un saludo.

1 Respuesta

Respuesta
1
Lo que está claro es que las consultas que podrás ejecutar son siempre consultas que modifiquen datos, los añada, cree una tabla, la borre o... en general, actualice datos.
No te servirá una consulta que presente los datos por pantalla, ya que si quieres algo automatizado no tendría mucho sentido ejecutar consultas que visualicen datos.
Dicho esto... yo trabajo Access encadenando consultas en los módulos.
Prueba a grabar este código en un módulo y mira a ver si te funciona:
Option explicit
function ejecutaConsultas()
   dim rs as recordset
   set rs=currentdb().openrecordset("consultas") ' Abirmos tu tabla
   if not rs.eof then rs.movefirst
   do while not rs.eof ' Para cada registro de la tabla...
      docmd.runsql rs!consulta ' Ejecutaría la consulta
      rs.movenext ' pasamos al siguiente registro
   loop
    rs.close ' Cerramos la tabla
end function
NOTA: Lo he escrito aquí directamente.
Buenos días Experto,
Primero que nada quiero agradecerte por tu pronta respuesta y comentarte lo que ha pasado con la función que adjuntaste.
He ejecutado la función pero me arroja el error "Una acción Ejecutar SQl requiere como argumento una instrucción SQL" la consulta que tengo en la tabla es select A*B from tabla_1 pero esta viene de una consulta, la consulta es de este tipo ya que estoy trabajando con fórmulas y necesito hacer ciertos cálculos, cuando ejecuto la función en teoría la consulta se ve que si que se captura en rs! Consulta pero se produce el error que te comento antes.
Un saludo.
Cuando se ejecutan consultas en cadena, esas consultas deben ser 'de acción' no de selección.
Me explico: una consulta de acción crea una tabla, modifica/añade/borra datos, etc... una de selección presenta los resultados en pantalla.
Si quieres encadenar consultas no puedes presentar los datos en pantalla sino que tienes que guardar los resultados para que la siguiente consulta pueda verlos. Si están visualizados la siguiente instrucción no puede ver la pantalla.
Para ello lo que se suele hacer es ir creando tablas de trabajo o tablas de paso.
Tu consulta quedaría de la siguiente forma:
    SELECT A*B as C into tablaAuxiliar1 from tabla_1
Esa instrucción crea la 'tablaAuxiliar1' con el resultado de la multiplicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas