2008-12-18 20 views
11

Estoy estudiando un curso introductorio en bases de datos y uno de los ejercicios es trabajar con MS-Access. Sin embargo, estoy usando Linux en mi casa y aunque puedo usar las clases de computación en la universidad, está lejos de ser conveniente (tiempo abierto limitado, mi tiempo de estudio es mayormente noches).cómo usar un archivo MS-Access de Linux?

Entonces, ¿cómo puedo usar un archivo de acceso (*.mdb) en Linux? Por uso me refiero a cambiar tablas, escribir consultas, etc.

¿Hay herramientas para convertirlo a otro formato de base de datos (mysql, postgresql o incluso gadfly)?

¿Qué problemas puedo encontrar?

+0

Gracias por todas las respuestas. Me olvidé de OpenOffice Base. Espero probar las diversas sugerencias durante el fin de semana y ver qué me funciona mejor. –

+0

Para obtener más información sobre el uso de [Abrir | Libre] Base de Office con bases de datos de Access en Linux, ver [esta respuesta en Ask Ubuntu] (https://askubuntu.com/a/519571/323236). –

Respuesta

1

De la documentación: Connecting To Microsoft Access. Sin embargo, esto parece indicar que necesita acceso ejecutado en un host de Windows y conectarse a través de ODBC ... Vea también Known Problems.

+0

MS Jet no se ejecuta en nada que no sea Windows. Su bloqueo de registros está muy ligado a los sistemas de archivos de Windows, y ni siquiera permitiré a mis clientes almacenar sus MDB en servidores de archivos que no ejecuten sistemas de archivos nativos de Windows (eso significa que no hay Novell ni Linux/Samba). –

14

Aunque un poco anticuado, he tenido un buen éxito con mdbtools que es un conjunto de herramientas de línea de comandos para acceder y convertir bases de datos de Access a otros formatos. Lo he usado para importar bases de datos en PostgreSQL.

Si está ejecutando una variante de Ubuntu se puede instalar con:

sudo apt-get install mdbtools 

o puede descargarlo desde here.

+0

Lo secundaré, pero ten en cuenta que las diferentes versiones de mdbtools darán como resultado una salida ligeramente diferente. Los tipos y el esquema pueden variar. – Arafangion

0

Puede trabajar con Access a través de una conexión (ODBC o OLEDB), siempre que solo necesite administrar la dimensión de "base de datos" del archivo (tablas y vistas, que se llaman "consultas" en Access).

Una vez que la conexión está abierta (ver here de cadenas de conexión), puede enviar comandos SQL a la base de datos MDB, como por ejemplo (donde cn es aquí un objeto de conexión):

cn.execute "CREATE TABLE myTableName (myTable_id autoNumber, myTable_code Text, ...)" 

Tenga en cuenta que MsAccess usa un DDL específico que se parece al T-SQL estándar, pero realmente no lo es. Verifique la sintaxis en la ayuda de MsAccess.

Dependiendo de su base de datos (y sus restricciones, valores predeterminados, claves principales utilizadas, relaciones, reglas de validación de datos, etc.), la transferencia de acceso puede ser fácil y directa o incluso no ser posible. Encontrará un problema cada vez que su base de datos implemente una regla de SQL específica/no de acceso.

Si realmente necesita convertir sus datos de acceso a otra cosa, lo exportaría a (1) exportarlo bajo MS-SQL (la versión gratuita estará bien, hay un asistente de ampliación disponible en Access o on this site) , (2) utilice una herramienta adicional como this one para generar una secuencia de comandos SQL "CREATE DATABASE", incluidas o no inserciones de datos, (3) utilice esta secuencia de comandos para intentar crear la base de datos y sus datos en otro servidor de base de datos.

2

Actualmente estoy tratando de acceder con Wine en Ubuntu y parece que estoy llegando. He descubierto que necesito copiar varias DLL de forma manual, pero eso podría ser fácilmente una falta de lectura sobre el tema.

1

Si tiene una tarea para trabajar con Access, entonces frigging encuentre una computadora con Windows y haga su ejercicio en la plataforma nativa para Access. No tiene sentido hacer nada más, ya que no aprenderá nada útil sobre Access.

Si la tarea es usar un almacén de datos Jet, entonces esa es una historia diferente. Y si lo es, entonces deberías haber formulado tu pregunta de manera diferente. No recomendaría usar Jet en nada que no sea un sistema de archivos nativo de Windows. Ciertamente, si el proyecto es realmente leer/escribir datos en un archivo de datos Jet, entonces realmente no está cumpliendo con la tarea si no está usando Windows al menos como el host ODBC.

+0

A pesar de la redacción, esta es una respuesta muy realista. ¡Seguramente la universidad tiene computadoras de laboratorio que podrían usarse para este propósito !? – Arafangion

1

Estás de suerte. El acceso no tiene equivalente real en Linux y mientras que Kexi es una alternativa interesante que puede importar archivos de acceso y tiene como objetivo proporcionar una funcionalidad similar, en realidad no usa archivos de acceso una vez que se importan los datos.

Si su tarea es desarrollar una aplicación de Access con formas etc en lugar de sólo el uso y mdb base de datos como una tienda, entonces usted puede probar una versión reciente de vino con una versión de acceso compatible (ver compatibility list) o, aún mejor , encuentre una máquina con Windows donde esté seguro de que va a funcionar.

No se olvide, el uso de una máquina virtual cargada con Windows le ayudaría a lograr lo mismo en su caja Linux.

Cuestiones relacionadas