Sin conocer mejor el código va a ser difícil que hallemos el problema. Las imágenes nos dan una idea de por donde puede venir el problema, pero es sólo una vista parcial del problema y va a ser necesario ver el código en su totalidad para saber por donde vienen los tiros.
Además veo una diferencia entre el código inicial y lo que se ve en las imágenes. Por ejemplo, en el código primero inicializas las variables y luego viene ObrirQuery,pero en la imagen se ve primero ObrirQuery, y luego la inicialización. ¿Que hace ese ObrirQuery()? Difieren además la cantidad de variables.
Discúlpame pero eso confunde un poco. ¿Cuál es el código correcto?
Saludos,