Automatización de vfp desde excel

474 views
Skip to first unread message

Marco Antonio Sepulveda

unread,
Jul 8, 2021, 5:42:12 PM7/8/21
to Comunidad de Visual Foxpro en Español
Hola a todos,

Llevo varios años trabajando reportes desde excel, accediendo a base de datos mediante ADODB. Por alguna razón ya no me es posible con versiones recientes de office, lo que me llevo a investigar y me di cuenta que podía automatizar vfp desde excel, entonces desarrollé un .exe que permite hacer consulta a la base de datos (postgres, oracle, vfp) y almacenar esta consulta en una matriz, luego consulto esta matriz desde excel y extraigo los datos que necesito. Los comandos que uso son los siguientes:

Set oFox = CreateObject("VisualFoxPro.Application")
oFox.DoCmd ("open database 'nombredatabase.dbc' shared")
oFox.DoCmd ("select * from tabla into cursor cursor1")
laArrayRes = oFox.RequestData("cursor1")

Todo esto funciona bien, y con los datos almacenados en la matriz laArrayRes la consulto con vba y no tengo ningún problema.

La pregunta es:
No he logrado ejecutar el primer comando (Set oFox = CreateObject("VisualFoxPro.Application")) sin tener que instalar Visual FoxPro (trabajo con versión 9 sp2). Instalo VFP9SP2RT.exe en el equipo del cliente y sigue sin funcionar, solo funciona instalándole el vfp9.
Alguna idea para que se ejecute el reporte desde excel sin tener que instalar vfp9?

Desde ya muchas gracias por su valiosa ayuda!!!

Luis Maria Guayan

unread,
Jul 10, 2021, 3:11:40 PM7/10/21
to Comunidad de Visual Foxpro en Español
Hola, si vas a automatizar VFP, si debes tener instalado VFP para que funcione. Al igual que automatizar Excel o Word desde VFP, deben estar instalados.

Te paso un artículo que publiqué hace bastante tiempo a ver si es lo que haces o te ayuda un poco


Otra forma de acceder a datos de VFP es a través del Proveedor OLE DB de VFP9, allí si bastaría solamente instalar el Proveedor OLE DB de Visual FoxPro 9.0.

Mira esta otra publicación que te dará alguna idea, allí instalando solo el Proveedor OLE DB, lo instancias como:

Set oConn = CREATEOBJECT("ADODB.Connection")
Set oRs = CREATEOBJECT("ADODB.RecordSet")

-- Accediendo a datos de VFP 9.0 desde la Web con el Proveedor OLE DB de VFP 9.0 --
https://comunidadvfp.blogspot.com/2005/04/accediendo-datos-de-vfp-90-desde-la-web.html

Saludos,

Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com


Marco Antonio Sepulveda

unread,
Jul 11, 2021, 1:31:53 PM7/11/21
to Comunidad de Visual Foxpro en Español
Muchas gracias Luis María Guayán por la aclaración, voy a probar con el material del Proveedor OLE DB de VFP 9.0, llamándolo desde vba.

Se me ocurren otras preguntas:
1. (Esta es tal vez un poco ocurrente). Así como Excel tiene un visor para poder visualizar documentos Excel sin tenerlo instalado, será posible tener un "visor" o algo parecido de vfp9, para instanciarlo sin tener que instalarlo?
2. Como la dificultad de tener que instalar el vfp9 en el cliente es por el tema de la licencia, existe alguna versión que pueda instalar en el cliente, que no tenga problema por el licenciamiento?

Muchas gracias por la ayuda prestada!!!

Hugo C.

unread,
Jul 11, 2021, 2:53:37 PM7/11/21
to Comunidad de Visual Foxpro en Español
Reply all
Reply to author
Forward
0 new messages