是否可以在不使用 Wine 或 VirtualBox 的情况下打开 Access 2010 数据库文件?

Jeg*_*ggy 41 database libreoffice microsoft-office

我有一个.accdb用 Microsoft Office 2010 创建的文件,我想知道是否可以使用某些本机 Ubuntu 应用程序(如 LibreOffice 或 OpenOffice)打开它,我知道 LibreOffice 有,LibreOffice Base但我不知道如何打开,或者是否有可能打开一个.accdb文件。

有什么方法可以在.accdb没有 Wine 或 VirtualBox 的情况下打开文件?

Gor*_*son 60

是的,我们可以使用UCanAccess JDBC 驱动程序连接到 LibreOffice Base 中的 Access 数据库(.mdb 和 .accdb)。这是我在全新安装 Ubuntu 14.04 LTS 上的做法。

重要的提示:  这些说明适用于 UCanAccess 3.0.5 版及更高版本(包括 4.x 版)。在继续之前,请确认您使用的是最新版本的 UCanAccess,可在此处获得

一次性设置

首先,我安装了 LibreOffice Base

sudo apt-get install libreoffice-base
Run Code Online (Sandbox Code Playgroud)

然后我下载了 UCanAccess (bin.zip文件) 并将其解压缩到文件夹中

~/Downloads/JDBC/UCanAccess
Run Code Online (Sandbox Code Playgroud)

主文件夹.png

注意:解压缩分发文件时,请务必指定“保留目录结构”(或类似的,取决于您的解压缩工具),以便文件夹结构如上图所示。

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

LibreOffice.png

并选择工具>选项

工具选项.png

在高级选项卡上,我单击了“类路径...”按钮

类路径按钮.png

然后使用“添加存档...”按钮添加以下 JAR 文件:

/home/gord/Downloads/JDBC/UCanAccess/loader/ucanload.jar
Run Code Online (Sandbox Code Playgroud)

类路径对话框.png

请注意,这是ucanload.jar加载/子文件夹,而不是在UCanAccess主文件夹“ucanaccess-xyzjar”。

重要提示:您必须关闭并重新打开所有LibreOffice(或 OpenOffice.org)组件才能使新的“类路径...”值生效。这包括任何“快速启动”功能或其他相关过程。(如果您想安全操作,只需重新启动机器即可。)

每个数据库设置

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

现有数据库.png

我想要操作的 Access 文件在我的 Documents 文件夹中被命名为“uca301demo.accdb”,因此在第 2 步中,“数据源 URL”是……

jdbc:ucanaccess:///home/gord/Documents/uca301demo.accdb
Run Code Online (Sandbox Code Playgroud)

(注意 Basejdbc:为我们提供了前缀,所以我们只需要输入以 开头的 URL 的其余部分ucanaccess: …

… 而“JDBC 驱动程序类”是

net.ucanaccess.jdbc.UcanloadDriver
Run Code Online (Sandbox Code Playgroud)

BaseJdbcPage.png

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

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

向导完成后,它打开了我的 LibreOffice 数据库,我可以在 .accdb 文件中看到表和保存的查询

基本主窗口.png

故障排除

如果您使用的是默认安装 LibreOffice Base 的发行版(例如 Linux Mint),那么您可能会收到错误

无法建立到数据源“MyDatabase”的连接。

'org.hsqldb.persist.HsqlProperties org.hsqldb.DatabaseURL.parseURL(java.lang.String, boolean, boolean)'

那是因为 LibreOffice 安装了自己的(相当旧的)HSQLDB 副本,该副本与 UCanAccess 冲突。要解决这个问题,请删除 LibreOffice 的 HSQLDB 副本。例如,在 Linux Mint 上,这将是

sudo apt remove libhsqldb1.8.0-java
Run Code Online (Sandbox Code Playgroud)

此外,如果 LibreOffice Base 因任何原因无法工作,您可以改用DBeaver。安装(免费)社区版就像

sudo snap install dbeaver-ce
Run Code Online (Sandbox Code Playgroud)

  • 这仍然适用于 LibreOffice 6.2!谢谢! (2认同)

Lui*_*ado 11

正如这里提到的它说它支持 Access 文件,但如果我们深入研究,它们只在 LibreOffice 中测试过,直到 Office 2007。

由于使用的是Office 2010,我建议尝试这个链接,因为其他用户可以通过外观已经尝试。

此外,此处显示的兼容性表明LibreOffice Base 在与 Microsoft Access 2010 相关时有多好。至少到版本 3.6。

Ask Libreoffice 网站上还有一个关于此的问题,其中提到了这个链接,其中据说 2007 格式与 2010 不同,因此它在 LibreOffice 3.6 或更低版本中无法正常工作。

我唯一不包括 Wine 或 VirtualBox 的建议是使用 MS Office 2010 将 Access 文件保存为 2007 版本(如果可能)或 MDB 格式。至少 LibreOffice 总体上致力于提高与 2010 的兼容性。

  • 我注意到这一行 [here](https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office#Database_program:_LibreOffice_Base_vs._Microsoft_Access):*'limited olds driver "Microsoft.Jet.OLEDB.4.0" 可以正常读取/写入,而“Microsoft.ACE.OLEDB.12.0”驱动程序仅读取;([fdo#43187](https://bugs.freedesktop.org/show_bug.cgi?id=43187))。**驱动程序仅适用于 Windows**。'* - 很棒... (2认同)