Leer una base de datos de Access

Quisiera saber si hay alguna forma de leer directamente desde vfp tablas que se encuentran en access y poder procesarlas

1 Respuesta

Respuesta
1

Espero poder ayudarte. La forma mas sencilla de procesar los datos de access es pasarlos a tablas de foxpro (.dbf) y luego anexarlas a la base de datos y así ya puedes trabajarlas a como quieras.

Este método es una aportación del Sr. Esparta Palma, de Mexico. Créditos para el.

CLEAR
lcArchivoMDB="C:\mydatabase.mdb"
lcConnString="Driver={Microsoft Access Driver (*.mdb)};"+;
"Dbq="+lcArchivoMDB+";No obstante=Admin;Pwd=;"

*** Nos conectamos a la base de datos ....
lnHandle = SQLStringConnect(lcConnString)
IF lnHandle > 0
*** Intentamos obtener las tablas
IF SQLTables(lnHandle,"TABLE","cTables") > 0
**** Realizamos el recorrido de los tablas obtenidas
SCAN
*** Obtenemos el nombre de la entidad
lcTabla=ALLTRIM(EVALUATE(FIELD(3,"cTables")))
lcQuery="SELECT * FROM "+lcTabla
WAIT WINDOW "Extrayendo Datos de la tabla: "+lcTabla NOWAIT
*** Ejecutamos la consulta según la entidad actual
IF SQLEXEC(lnHandle,lcQuery,"cImport") > 0
*BROWSE
*Copiamos a una tabla física
COPY TO (lcTabla)
USE IN (SELECT("cImport"))
Endif
Endscan
USE IN (SELECT("cTables"))
**** Desconectarnos de la fuente remota
=SQLDisconnect(lnHandle)
ELSE
**** Manejo de Errores
IF AERROR(laError) > 0
Messagebox("Error al obtener entidades:"+laError[2])
ELSE
Messagebox("Error inesperado al obtener entidades...")
ENDIF
ENDIF
ELSE
IF AERROR(laError) > 0
Messagebox("Error al intentar conectar:"+laError[2])
ELSE
MESSAGEBOX("Error inesperado al intentar conectar")
Endif
ENDIF

En la segunda linea (donde esta en negrita) cambia esa linea por la ubicación y nombre de tu base de datos en access en tu equipo. Una vez que guardes y ejecutes... anda la carpeta de tu equipo donde tenes el proyecto y busca la tabla. Ahí la encontraras.

Ami me funciona re bien! Proba y me avisas!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas