Saltar al contenido

Importar datos desde tablas Paradox 5 a Excel 2016


Recommended Posts

publicado

Estimados del foro.

Tengo un requerimiento puntual y estoy empantanado en el proceso del tipo importación de datos.

Para el caso debo importar los datos desde unas tablas Paradox 5, y estos datos luego clasificarlos y graficarlos. el una planilla dependiendo el cliente seleccionado, todo con macros y automatico.

La idea es conectar las tablas, generar la consulta y extraer los datos resultados, que es como indique, el proceso a resolver..

¿Alguien puede guiar a este humilde servidor?.

Muchas gracias

  • 4 weeks later...
publicado

Estimados del foro,

Por favor, necesito una cadena de conexion de Excel 2010 a Paradox 5.0.

El problema es que el equipo tiene Windows 10 64 bits. He probado miles de cadenas y no logro conectar.

Gracias a todos

publicado

convendría saber (exactamente) lo que has intentado, lo que has obtenido y "que esperabas" (?), en vía de mientras...

- conexión estándar a paradox: mira aquí

- conexión por driver genérico de MS: mira aquí

- requerimientos para 64 bits: mira aquí

saludos,

hector.

publicado

Estimado Hector,

Reciba usted mis mas sinceros agradecimientos por su comentario, que por cierto es muy acertivo en relación a lo que en estos momentos estoy pasando.

Le cuento mas detalladamente:

Debo extraer desde tablas Paradox 5, información relacionada con Cotizaciones y Ventas.

Desde mi equipo (Windows 7 32bits/Excel 2016/Macro vba), no tengo problema con realizar la extración de datos con el siguiente algoritmo:

ruta="C:\TEMP\"
Set Conn = New ADODB.Connection
'Creamos el objeto recordset
Set rs = New ADODB.Recordset
'Nos conectamos a la base de datos
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ruta & ";" & _
          "Extended Properties=Paradox 5.x;"
'Hacemos la consulta
Sql = "Select * From " & tabla
'Obtemos resultados
rs.Open Sql, Conn, adOpenStatic, adLockOptimistic

Al momento de correr el algoritmo en el equipo del Cliente (Windows 10 64bits/Excel 2016), este no logra extraer ningún dato, pues el resultado de rs.RecordCount=0.

He probado generando las ODBC correspondientes (Paradox 5 32 bits), configure BDAdministrator Borland y nada,

Bueno, espero me pueda ayudar a salir de este problema, y bien, le reitero mis mas sinceros agradecimientos.

Juan Pablo

publicado
Hace 22 horas, Juanpy dijo:

el algoritmo en el equipo del Cliente (Windows 10 64bits/Excel 2016), este no logra extraer ningún dato, pues el resultado de rs.RecordCount=0

1) si ya analizaste el tercer enlace sugerido (los requerimientos en 64 bits) habrás notado que solo necesitas cambiar la cadena de la conexión, de esto:

  Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ruta & ";" & _
          "Extended Properties=Paradox 5.x;"

a esto:

  Conn.Open "provider=microsoft.ace.oledb.12.0;data source=" & ruta & _
          ";extended properties=paradox 5.x;"

2) si no tienes claro cuando se ejecutara en sistemas de 32 o 64 bits, agrega condiciones usando las constantes del compilador (p.ej.) poniendo el inicio del modulo de código lo siguiente:

#If Win64 = True Then
  Const bMotor As String = "ace.oledb.12.0"
#Else
  Const bMotor As String = "jet.oledb.4.0"
#End If

y cambias la cadena de la conexión a lo siguiente:

  Conn.Open "provider=microsoft." & bMotor & ";data source=" & ruta & _
          ";extended properties=paradox 5.x;"

3) por si las dudas... el driver no es parte del sistema operativo Windows, pero está disponible para su descarga:

- en ingles

- en español

saludos,

hector.

publicado

Estimado,

Nuevamente le agradezco su deferencia y tiempo invertivo, en pos de solucionar mi tan especifico problema.

Le comento que a pesar de haber cargado el driver informado (AccessDatabaseEngine_X64), y luego, modificado el algoritmo según sus instrucciones, el módulo sigue sin resolver.

Algunos eventos relacionados son:

1.)

#If Win64 = True Then
    Const bMotor As String = "ace.oledb.12.0"
#Else
    Const bMotor As String = "jet.oledb.4.0"
#End If
Public AnyoProc As Integer
Public matAnyo As Variant
Public NombreHoja As String

Private Sub CargaCotizacion(control As IRibbonControl)
    Application.ScreenUpdating = False
Public AnyoProc As Integer
Public matAnyo As Variant
Public NombreHoja As String
Private Sub CargaCotizacion(control As IRibbonControl)
    #If Win64 = True Then
        Const bMotor As String = "ace.oledb.12.0"
    #Else
        Const bMotor As String = "jet.oledb.4.0"
    #End If
    Application.ScreenUpdating = False

Para ambos casos, no reconoce las variables de entorno ni las constantes.

2.) Realice dos versiones, una con:

Conn.Open "provider=microsoft.Jet.OLEDB.4.0;data source=" & ruta & _
              ";extended properties=paradox 5.x;"

Y otra con:

Conn.Open "provider=microsoft.ace.oledb.12.0;data source=" & ruta & _
          ";extended properties=paradox 5.x;"

Pero para este último caso de Windows 10 64 bits, sencillamente nada reconocio.

Le reitero mis agradecimientos, y si sabe de alguna información relacionada, le ruego favor informar.

Muchas gracias

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.