开发者

How to open an .accdb file in Ubuntu?

The development machine I work on has Ubuntu Jaunty Jackalope as its operating system. I have开发者_如何学Python been presented with data for a project I'm working on in the form of an .accdb file created by Microsoft Access. I do not own a copy of Microsoft Access. I do have Open Office installed and would be willing to install any software package available to my operating system. Is there a way I can open or transform this file so that I can view and edit the data on my computer? Is there another format that the Access database could be saved as that I would be able to open?


There are two open source tools available however they only work on MDB format files. Can you ask the supplier of the ACCDB file to give it to you in MDB format?

MDB Tools is a set of open source libraries and utilities to facilitate exporting data from MS Access databases (mdb files) without using the Microsoft DLLs.

Jackcess is a pure Java library for reading from and writing to MS Access databases. It is part of the OpenHMS project from Health Market Science, Inc. . It is not an application. There is no GUI. It's a library, intended for other developers to use to build Java applications. It appears to be much newer than MDB tools, is more active and has write support.


Jackcess now supports everything from Access 97 (read-only), 2000, 2003, 2007, and 2010 (read-write), both .mdb and .accdb files.

Dumping the file can be as easy as

import com.healthmarketscience.jackcess.*;
import java.io.*;
public class AccessExport {
  public static void main(String []args) throws IOException {
    System.out.println(Database.open(new File(args[0])).getTable(args[1]).display());
  }
}

(of course, you need a java compiler, libcommons-logging-java, libcommons-lang-java and you have to pass the .accdb filename as the first and the table name as the second parameter).

-Marcel


I just had this same problem on an Ubuntu 14.01 AWS EC2 instance and I was able to accomplish this task (convert .accdb file to CSV on Ubuntu) by using access2csv. I had to install Git, install Java, and install ant, but then was able to convert the .accdb files I had to CSV by typing:

$ java -jar access2csv.jar myfile.accdb

It uses Jackcess so you get the same functionality without having to write your own Java code to accomplish this basic task. Each table is returned as its own CSV file.

You can also access the schema by passing the --schema option:

java -jar access2csv.jar myfile.accdb --schema

Hope this is helpful. It certainly was for me.


A good format to view and work with on Linux would be CSV.

As the accepted answer suggests MDB Tools does the job. To export all the tables on Linux to CSV format try this command:

mdb-tables -d ',' database.accdb| xargs -L1 -d',' -I{} bash -c 'mdb-export database.accdb "$1" >"$1".csv' -- {}

You can use mdbtools also into windows via WSL (Ubuntu on Windows or Debian on Windows): Then install it in console with:

sudo apt install mdbtools


This may be of interest: How to convert accdb to a postgres database

I am not sure if Wine would suit, but it might be worth a look.


I found this blog: http://tahsinabrar.com/open-a-microsoft-access-accdb-file-in-ubuntu/ In case the link is broken, the contents say:

We can use the UCanAccess JDBC driver to connect to Access databases (.mdb and .accdb) in LibreOffice Base. Here’s how I did it on a clean install of Ubuntu 14.04 LTS.

First, I installed LibreOffice Base itself

sudo apt-get install libreoffice-base

Then I downloaded UCanAccess to my Downloads folder and unzipped it.

I launched LibreOffice (not Base, just LibreOffice itself)

LibreOffice.png

and chose Tools > Options

On the Advanced tab I clicked the “Class Path…” button and then added the following five (5) JAR files using the “Add Archive…” button:

/home/abrar/Downloads/UCanAccess-2.0.9.5-bin/ucanaccess-2.0.9.5.jar /home/abrar/Downloads/UCanAccess-2.0.9.5-bin/lib/commons-lang-2.6.jar /home/abrar/Downloads/UCanAccess-2.0.9.5-bin/lib/commons-logging-1.1.1.jar /home/abrar/Downloads/UCanAccess-2.0.9.5-bin/lib/hsqldb.jar /home/abrar/Downloads/UCanAccess-2.0.9.5-bin/lib/jackcess-2.1.0.jar

Note that you must close and re-open LibreOffice for the new Class Path values to take effect.

Then I launched LibreOffice Base, and in Step 1 of the wizard I chose “Connect to an existing database (JDBC)”

The Access file I wanted to manipulate was named “baseTest.accdb” in my Downloads folder, so in Step 2 the “Datasource URL” was

jdbc:ucanaccess:///home/abrar/Downloads/baseTest.accdb

and the “JDBC driver class” was

net.ucanaccess.jdbc.UcanaccessDriver

In Step 3, I left the “User name” field empty and just clicked “Next

”.

In Step 4, I saved the LibreOffice Base database as “accdbTest.odb” in my Documents folder.

When the wizard completed it opened my LibreOffice database and I could see the tables in the .accdb file

But you have download and unzip UCANACCESS first from here: http://ucanaccess.sourceforge.net/site.html

I can see all the tables in LibreOffice Base. Here is one:

How to open an .accdb file in Ubuntu?


I guess you want to extract data from tables, not code from modules. I do not know specifically Ubuntu but I guess you can connect to the access file using an ODBC connection (or, if available, OLEDB connection) and extract the data? Depending on the connection type, you might still need to know the tables names in order to import them.


Microsoft Access Runtime is a free software. You can install it in Ubntu using Wine and then open the accdb database.


Im not sure if there are any native tools, but you can always install a copy of windows and install a free view for accdb files or install a trial of Access.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜