【问题标题】:How to open an .accdb file in Ubuntu?如何在 Ubuntu 中打开 .accdb 文件?
【发布时间】:2010-12-21 19:08:56
【问题描述】:

我工作的开发机器使用 Ubuntu Jaunty Jackalope 作为其操作系统。我收到了我正在处理的项目的数据,这些数据以 Microsoft Access 创建的 .accdb 文件的形式出现。我没有 Microsoft Access 的副本。我确实安装了 Open Office,并且愿意安装任何适用于我的操作系统的软件包。有没有办法可以打开或转换此文件,以便我可以在计算机上查看和编辑数据?是否可以将 Access 数据库保存为我可以打开的另一种格式?

【问题讨论】:

标签: database ms-access ubuntu


【解决方案1】:

有两个可用的开源工具,但它们仅适用于 MDB 格式文件。可以请ACCDB文件的供应商提供MDB格式的给你吗?

MDB Tools 是一组开源库和实用程序,用于在不使用 Microsoft DLL 的情况下方便地从 MS Access 数据库(mdb 文件)导出数据。

Jackcess 是一个纯 Java 库,用于读取和写入 MS Access 数据库。它是 Health Market Science, Inc. 的 OpenHMS 项目的一部分。它不是一个应用程序。没有图形用户界面。它是一个库,旨在供其他开发人员用来构建 Java 应用程序。它似乎比 MDB 工具更新得多,更活跃并且具有写入支持。

【讨论】:

  • 如果我们有 ACCDB 文件并且我们想在 Linux 中打开它。还有其他选择吗?
【解决方案2】:

Jackcess 现在支持 Access 97(只读)、2000、2003、2007 和 2010(读写)中的所有内容,包括 .mdb 和 .accdb 文件。

转储文件可以像

一样简单
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());
  }
}

(当然,您需要一个 java 编译器、libcommons-logging-java、libcommons-lang-java 并且您必须将 .accdb 文件名作为第一个参数并将表名作为第二个参数传递)。

-马塞尔

【讨论】:

    【解决方案3】:

    我刚刚在 Ubuntu 14.01 AWS EC2 实例上遇到了同样的问题,我能够使用 access2csv 完成此任务(在 Ubuntu 上将 .accdb 文件转换为 CSV)。我必须install Gitinstall Javainstall ant,但随后能够通过键入以下内容将我必须的.accdb 文件转换为CSV

    $ java -jar access2csv.jar myfile.accdb

    它使用Jackcess,因此您无需编写自己的Java 代码即可获得相同的功能来完成此基本任务。每个表都作为其自己的CSV 文件返回。

    您还可以通过传递--schema 选项来访问架构:

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

    希望这会有所帮助。这当然是给我的。

    【讨论】:

    【解决方案4】:

    在 Linux 上查看和使用的良好格式是 CSV。

    正如公认的答案所暗示的那样,MDB 工具可以完成这项工作。要将 Linux 上的所有表导出为 CSV 格式,请尝试以下命令:

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

    您也可以通过 WSL(Windows 上的 Ubuntu 或 Windows 上的 Debian)在 Windows 中使用mdbtools: 然后在控制台中安装它:

    sudo apt install mdbtools
    

    【讨论】:

    • 不错的 oneliner 但遗憾的是 mdbtools 仅适用于 .mdb 文件,但不适用于 accdb 文件...
    • @Gilles 它在我的情况下有效,我不知道为什么它不适合你,对我来说它适用于这些数据库:ars.usda.gov/northeast-area/beltsville-md-bhnrc/…
    • @Gilles 也许你有一个旧的 mdbtools
    • @Gilles 我现在查看了,我使用的 .accbd 已保存为与 Access 2007 兼容,也许您有一个较新版本的访问文件,mdbtools 不支持
    • 我的 mdb-tools 版本是 0.7.1。我可以确认您的代码适用于链接数据库以及在线找到的其他几个 .accdb(例如:catalog.data.gov/dataset?q=accdb)。但是使用我正在使用的 .accdb 文件(我无法共享)我收到以下消息Unknown Jet version. Couldn't open database.。它适用于@Richard-d 提出的acess2csv.jar 解决方案,但没有列标题。在大多数情况下,您的解决方案非常好!谢谢!!!
    【解决方案5】:

    这可能很有趣:How to convert accdb to a postgres database

    我不确定Wine 是否适合,但可能值得一看。

    【讨论】:

      【解决方案6】:

      我猜你想从表中提取数据,而不是从模块中提取代码。我不知道具体的 Ubuntu,但我猜您可以使用 ODBC 连接(或者,如果可用,OLEDB 连接)连接到访问文件并提取数据?根据连接类型,您可能仍需要知道表名称才能导入它们。

      【讨论】:

      • Jet/ACE 仅在 Windows 上运行,因此您需要一些其他库来复制 Jet/ACE 提供的功能。托尼提供了所有我知道的。
      【解决方案7】:

      Microsoft Access Runtime 是一款免费软件。您可以使用 Wine 将其安装在 Ubntu 中,然后打开 accdb 数据库。

      【讨论】:

      • 运行时没有为您提供编辑数据库的工具。它只允许您运行在 Access 中构建的应用程序。此外,Wine AppDB 将完整的 A2007 评为仅青铜级支持 (appdb.winehq.org/objectManager.php?sClass=version&iId=16862),但这是针对完整版本而不是运行时(我假设)。
      【解决方案8】:

      我找到了这个博客:http://tahsinabrar.com/open-a-microsoft-access-accdb-file-in-ubuntu/ 万一链接坏了,内容说:

      我们可以使用UCanAccess JDBC驱动来连接Access数据库 LibreOffice Base 中的(.mdb 和 .accdb)。这是我如何在干净的情况下做到的 安装 Ubuntu 14.04 LTS。

      首先,我自己安装了 LibreOffice Base

      sudo apt-get install libreoffice-base

      然后我将 UCanAccess 下载到我的下载文件夹并解压缩。

      我启动了 LibreOffice(不是 Base,只是 LibreOffice 本身)

      LibreOffice.png

      然后选择工具 > 选项

      在“高级”选项卡上,我单击“类路径...”按钮,然后添加 使用“添加存档...”按钮以下五 (5) 个 JAR 文件:

      /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

      请注意,您必须为新班级关闭并重新打开 LibreOffice 路径值生效。

      然后我启动了 LibreOffice Base,并在向导的第 1 步中选择了 “连接到现有数据库 (JDBC)”

      我要操作的 Access 文件名为“baseTest.accdb” 我的下载文件夹,所以在第 2 步中,“数据源 URL”是

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

      而“JDBC 驱动程序类”是

      net.ucanaccess.jdbc.UcanaccessDriver

      在第 3 步中,我将“用户名”字段留空,然后单击“下一步”

      ”。

      在第 4 步中,我将 LibreOffice Base 数据库保存为“accdbTest.odb” 我的文档文件夹。

      向导完成后,它打开了我的 LibreOffice 数据库,我 可以看到 .accdb 文件中的表格

      但你必须先从这里下载并解压 UCANACCESS:http://ucanaccess.sourceforge.net/site.html

      我可以看到 LibreOffice Base 中的所有表格。这是一个:

      【讨论】:

      • 如博文末尾所述,这些说明直接来自我的 Ask Ubuntu 回答 here
      【解决方案9】:

      我不确定是否有任何本机工具,但您始终可以安装 Windows 副本并为 accdb 文件安装免费视图或安装 Access 试用版。

      【讨论】:

      • 是的,你可以总是安装windows。
      • 这是我试图远离的昂贵答案。
      猜你喜欢
      • 1970-01-01
      • 2022-08-10
      • 2018-08-27
      • 2017-09-28
      • 2015-03-02
      • 2015-07-28
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      相关资源
      最近更新 更多