Se me cuelga el vfp9 cuando quiero hacer un appen from de un archivo en excel

301 views
Skip to first unread message

rudolf heiner

unread,
Nov 22, 2014, 10:36:20 AM11/22/14
to publice...@googlegroups.com
saludos amigos foxeros,
tengo un problema que no pense que pasaria,
estoy tratando de hacer un append from de una archivo en excel y el vfp9 se cuelga,
yo utilizo windows 7 ultimate 64 bits,
y el archivo excel es de extencion xls,
a ver si me pueden ayudar por favor.
saludos,
rudolf heiner.

rudolf heiner

unread,
Nov 22, 2014, 11:38:42 AM11/22/14
to publice...@googlegroups.com
Aqui les dejo los archivos,
uno de la tabla creada y el archivo excel,
espero me puedan ayudar por favor,
saludos,
rudolf heiner.
Archivos.rar_

Alcides Sanchez

unread,
Nov 25, 2014, 8:45:28 AM11/25/14
to publice...@googlegroups.com
Saludos,rudolf, te recomiento que guardes el archivo como CSV, y trates de importar el archivo mediante APPEND FROM ? delimited, primero ejecuta estos comandos.
SET DATE BRITISH
SET CENTURY on

saludos,

Jose Mario

unread,
Nov 25, 2014, 9:34:53 AM11/25/14
to publice...@googlegroups.com
yo lo hice funcionar, y esto que soy bruto
ademas tenes que instalar los drivers

if arnuevo==''
 RETURN .f.
ELSE
nchar = LEN(arnuevo)
vaqui = 0
FOR e=1 TO nchar
 IF SUBSTR(arnuevo,e,1)=='\'
  vaqui = e
 endif
NEXT e
mileft = LEN(LEFT(arnuevo,vaqui))
milen = LEN(arnuevo)
mifilealt = SUBSTR(arnuevo,mileft+1,(milen-(mileft+1))-3)



*--abriendo el archivo xlsx
LOCAL lcXLBook AS STRING, lnSQLHand AS INTEGER, ;
lcSQLCmd AS STRING, lnSuccess AS INTEGER, ;
lcConnstr AS STRING
lcXLBook = arnuevo

mierrorx  = 0
 lcConnstr = [Driver=] + ;
     [{Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};] + ;
     [DBQ=] + lcXLBook

 IF !FILE( lcXLBook )
     MESSAGEBOX ([Archivo excel no encontrado],31,"Archivo no encontrado")
     RETURN .f.
 ENDIF
 lnSQLHand = SQLSTRINGCONNECT( lcConnstr )
 IF lnSQLHand < 0
  MESSAGEBOX("Error de Conexi?n , Verifique.",48,"Error")
  RETURN .f.
 ENDIF
 lcSQLCmd = 'Select * FROM "'+mifilealt+'$"'
 lnSuccess = SQLEXEC( lnSQLHand, lcSQLCmd, [xlResults] )
 IF lnSuccess < 0
     SQLDISCONNECT( lnSQLHand )
     MESSAGEBOX("No se pudo importar el Archivo Verifique que el nombre del 
archivo sea igual al nombre de la hoja a importar.",48,"Erro al Intentar 
importar.")
     RETURN .f.
 ENDIF
 SQLDISCONNECT( lnSQLHand )
ENDIF

integral

unread,
Nov 25, 2014, 9:36:38 AM11/25/14
to publice...@googlegroups.com
Amigo RUDOLF :

Te muestro el texto de un caso similar a tu problema y como obtuvo la solución que también aplique en su momento.

Bueno ante que nada gracias por los aportes que recibi sobre este problema el cual lo resolvi sin cambiar el codigo que tengo, el cual estaba bien hecho, el problema venia de la hoja de calculo, ya me estaba por darme por vencido y ver en cambia la codificacion y pasarlo a importar mediante xml pero por suerte no tuve que hacer eso.
Buscando otras cosas en la web encontre un articulo en donde informaban sobre problemas con importacion de hojas de calculo a vfp y alli estaba la solucion. Les paso lo que encontre quizas a otros les sirva.

Link original de: http://www.portalfox.com/index.php?name=News&file=article&sid=2618&mode=nested&order=0&thold=0

Artículo de la Base de Conocimientos de Microsoft que indica un error al utilizar el comando IMPORT FROM de Visual FoxPro con planillas guardadas en Excel 2007.

El enlace al artículo original en la Base de Conocimientos de Microsoft es el siguiente:

-- Microsoft Visual FoxPro fails to import Microsoft Excel 2007 Workbook saved in "Excel 97-2003 Workbook" format --
http://support.microsoft.com/kb/954318/es

Si usa el comando IMPORT FROM de Visual FoxPro 8 ó 9 para importar una hoja de cálculo de Microsoft Excel 2007 que se guardó con el formato"Hoja de Cálculo Excel 97-2003" y si está ejecutando VFP en:

  • Una PC con Windows XP o sistemas operativos anteriores, verá el mensaje:
    Formato de archivo no es válido
  • Una PC con Windows Vista, Windows Server 2003, o Windows Server 2008, verá el mensaje de error:
    Microsoft Visual FoxPro (numero_de_version) ha dejado de funcionar.
    Un problema causó que el programa deje de funcionar correctamente.
    Windows cerrará el programa y le notificará si es una solución disponible.

Al presionar el botón "Cerrar programa" se borra el cuadro de diálogo. Bajo algunas circunstancias, puede aparecer un error C0000005.

Las causas son que el formato "Hoja de Cálculo Excel 97-2003" creado por Microsoft Excel 2007 contiene información aadicional que no existe en Microsoft Excel 2003 al guardar un documento en formato "Microsoft Excel 97-Excel 2003 y Hoja de Cálculo 5.0/95 (*. xls)". Por eta información adicional, Visual FoxPro no entiende y no puede importar este formato de archivo.

Para solucionar este problema hay varias posibilidades

  • Guardar en la hoja de cálculo con formato "Microsoft Excel 97-Excel 2003 y Hoja de Cálculo 5.0/95 (*. xls)" desde Excel 2003.
  • Guardar la hoja de cálculo en formato "Microsoft Excel 5.0/95 Workbook (*. xls)" desde Excel 2007.
  • Use OLE automation para leer los datos de la hoja de cálculo Excel 2007 y grabarla en una tabla de VFP.
  • Use el "Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) ODBC driver" incluido en el "Office 2007 System Driver". El siguiente artículo describe cómo hacer esto: "Importar datos de una hoja de cálculo Microsoft Excel 2007 utilizando Visual FoxPro 9.0"

Espero les sirva, a mi me sirvió de mucho. (Guardar la hoja de cálculo en formato "Microsoft Excel 5.0/95 Workbook (*. xls)" desde Excel 2007 - 2010)

Saludos,

INTEGRAL
(Lima-Perú)

El sábado, 22 de noviembre de 2014 10:36:20 UTC-5, rudolf heiner escribió:

Jose Mario

unread,
Nov 25, 2014, 9:38:03 AM11/25/14
to publice...@googlegroups.com

descarga esto y lo demas es famil

solo pasas el archivo de excel

es facil, solo llamas al archivo de excel     arnuevo

http://www.microsoft.com/downloads/en/details.aspx?familyid=7554f536-8c28-4598-9b72-ef94e038c891&displaylang=en



El sábado, 22 de noviembre de 2014 09:36:20 UTC-6, rudolf heiner escribió:

Jose Mario

unread,
Nov 25, 2014, 9:45:45 AM11/25/14
to publice...@googlegroups.com
no pases formulas, coloca titulos o nombres de campos, 
c1,c2,c3,c4,c5,c6, o nombre, apellido


El sábado, 22 de noviembre de 2014 09:36:20 UTC-6, rudolf heiner escribió:

Rudolf Johann Heiner

unread,
Nov 25, 2014, 1:45:20 PM11/25/14
to publice...@googlegroups.com
gracias a todos por responder,
muchas gracias,
tomare en cuenta los ejemplos,
saludos,
rudolf heiner.

Ultraton500

unread,
Nov 26, 2014, 1:24:30 PM11/26/14
to publice...@googlegroups.com
Rudolf, en este hilo Martín Peveri me pasó un código para evitar este problema. Es mas lento que Append From pero funciona con cualquier versión de archivo de Excel.


Espero te sea de utilidad.
Saludos,
Javier.
Reply all
Reply to author
Forward
0 new messages