Access - Importar tabla de Lotus (*.wks)

 
Vista:

Importar tabla de Lotus (*.wks)

Publicado por McRight2k (21 intervenciones) el 02/04/2003 13:36:40
Hola!
Necesito importar la tabla esencial de mi base de datos con frecuencia, además ésto lo debe hacer una persona que desconoce Access, por lo que había habilitado una opción en mi menú personalizado para seleccionar el archivo donde esté la tabla a importar y quisiera importar mediante el código.

Resulta que el origen de la tabla está en formato Lotus con extensión .wks y mediante la opción de menú de Access: Archivo-Obtener datos externos... - Importar, puedo seleccionar el tipo "Lotus 1-2-3 (*.wk*)" e importar correctamente la tabla. Pero el problea es que mediante la opción de importar desde el código (que es lo q me interesa), el TransferDatabase, según la ayuda, los tipos posibles para importar son:

Tipos de bases de datos:
Microsoft Access (predeterminada)
Jet 2.x
Jet 3.x
dBase III
dBbase IV
dBase 5.0
Paradox 3.x
Paradox 4.x
Paradox 5.x
Paradox 7.x
Bases de datos ODBC

Por lo que aquí no tengo opción de elegir el tipo de Lotus, no entiendo porque aquí no.

¿Alguien ha hecho algo parecido o ha importado otro tipo de archivo que no esté en esta lista?
Buscando he leido varios posts de Victoria respondiendo a preguntas de importar o exportar para que usen TransferDatabase y decía que "se pueden hacer maravillas", espero que sea así, sino tendré un grave problema... :)

Gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Importar tabla de Lotus (*.wks)

Publicado por Alejandro (4142 intervenciones) el 27/04/2023 20:31:44
Hola.

En efecto, como mencionas, la lista de tipos de bases de datos que se pueden utilizar con el método TransferDatabase está limitada a un conjunto específico. Sin embargo, es posible utilizar una solución alternativa para importar archivos de Lotus 1-2-3.

Lo que puedes hacer es utilizar una cadena de conexión OLE DB con un proveedor de Lotus para abrir la tabla directamente desde el archivo .wks. La cadena de conexión sería algo así:

1
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=nombre_del_origen_de_datos_Lotus;DBQ=ruta_del_archivo_wks"

Donde "nombre_del_origen_de_datos_Lotus" es el nombre del origen de datos de Lotus que tienes configurado en el equipo, y "ruta_del_archivo_wks" es la ruta completa y el nombre de archivo del archivo .wks que deseas importar.

Una vez que tienes la cadena de conexión, puedes utilizar el método OpenRecordset de un objeto DAO.Database para abrir la tabla directamente desde el archivo .wks. Por ejemplo:

1
2
3
4
5
6
7
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
 
Set db = CurrentDb()
strSQL = "SELECT * FROM [Tabla$]"
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot, dbReadOnly, "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DSN=nombre_del_origen_de_datos_Lotus;DBQ=ruta_del_archivo_wks"";")

Donde "Tabla" es el nombre de la hoja de cálculo que contiene los datos que deseas importar.

Espero que esto te sea útil. Si tienes alguna otra pregunta, no dudes en preguntar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar