Ayuda con Query Tables

javier ortega
06 de Abril del 2005
Hola a todos,

Estoy desarrollando un ADDIN en Excel que te permite extraer datos de una BD. El caso es que me he creado una función a la que se le pasan unos parámetros y en función de ellos te genera una Query y te devuelve el resultado en EXCEL.

Lo que estoy utilizando es una función pública que se llama DATOS y recibe unos parámetros. Esta función DATOS se escribe en cualquier celda de EXCEL como cualquier formula normal. El trabajo que debería hacer es simplemente analizar los parámetros, crear un QueryTable automáticamente con la ejecución de la sentencia deseada y devolver en la casilla de la formula un OK si la ejecuión es correcta y un NO si es incorrecta.

El caso es que la función va a medias, la Query la crea pero hace dos pasadas a la función. Por ejemplo: Datos("select nombre from clientes") (por poner un ejemplo). Esto devería devolver en la fórmula un OK o un NO y justo debajo de la celda donde se definio el resultado de la query mostrada como una QueryTable.

El caso es que comienza la ejecución correcta y cuando llega a la QueryTable.Refresh en lugar de seguir con el código interrumpe la ejecución y vuelve a llamar a la función DATOS, en esta segunda pasada sí que realiza correctamente la consulta.
Con esto lo que pretendo decir es que el código esta correcto porque la consulta se genera pero no es lógico que Excel aborte líneas de código así por las buenas. Es como si necesitara volver a hacer CALCULATE de otras celdas y les diera prioridad antes de acabar lo que esta haciendo.

Lo que me provoca esto es que si tengo varias funciones de datos y hago un CALCULATE de toda la hoja, solamente me ejecuta correctamente 1 ya que el resto se quedan en ejecución suspendida. Sin embargo si edito la formula de cada una de ellas y las vuelvo a ejecutar, el resultado es correcto.

¿Alquien sabe por que coño esta pasando esto? Ya no sé que probar.

Un saludo y muchas gracias.

Alejandro Tello Busquets
06 de Abril del 2005
Hola, no entendí del todo cómo funciona tu código, sería muy bueno que lo subieras para que lo pudiéramos revisar. En mi foro, reviso los mensaje muy a menudo, si también quieres entrar, estás invitado.

www.kognos.com.mx/foro