MS Access的良好免费替代品[关闭]


102

考虑需要在Microsoft平台上开发轻量级桌面DB应用程序。

使用MS Access可以很容易地做到这一点,但我希望能够将其分发给其他人,并且我不想为运行时许可证付费。

要求:

  • 容易分发给他人
  • 没有运行时许可问题

注意事项和候选人:

问题:什么是MS Access的低成本或免费数据库替代品?


另请参阅: 开源报告引擎



@Schnapple

Bruceatk对我的想法产生了很大的影响。它不是数据库引擎,而是我想要Access为聚会带来的其他好处。漂亮的表单设计器,漂亮的报告引擎等。但是您确实对安装占用空间提出了一个很好的观点。我已经考虑过了,但是我还没有做出任何坚定的决定。无论如何,这可能都是相当轻巧的东西,而且肯定会占用很小的安装空间。


@Remou,

不,我没有意识到MS Access 2007运行时是免费的。感谢您指出了这一点。上次我不愿意调查它(我不记得是什么时候),我认为它对于运行时来说是相当昂贵的许可证,因为我认为他们正试图将其出售给公司IT部门。

还要感谢其他所有人的回应;我完全不知道你们指出的其他选择。


3
所选答案中提出的所有解决方案都与后端(数据库本身)有关。从来没有与发布喷气机数据库相关的任何费用!因此,对于pcampbell正在寻找前端,后端还是两者同时使用,这个问题有些困惑。
帕特里克·奥诺涅兹

1
@Patrick Honorez,最初不是问这个问题的是坎贝尔。是的 我很久以前才将其转换为Community Wiki,而pcampbell是最后一次对其进行编辑。我想要的东西将包括后端,可视查询和报告引擎。后端很容易-除了Access以外,我从未在很大程度上找到可视化查询和报告。
Onorio Catenacci

只要您拥有正确的JRE,我还没有发现Access会不稳定。也可以在Libre Office Base尝试一下。虽然可以从Access导入表,并且可能无法在其中运行VBA,但也不能导入表单。除此之外,OOBase是一个完全可行的数据库(至少对于要求较轻的小型数据库而言)。
CodeLurker

Answers:


61

这里要记住的一件事是,MS Access产品不仅仅是原始数据库引擎。它提供了一个完整的应用程序开发平台,包括表单和菜单设计器,客户端应用程序语言和环境(VBA)以及报表设计器。当您将所有这些东西放在一起时,MS Access确实没有对等点。

但是对于这个问题的范围,我们关注的是原始数据库引擎。考虑到这一点:

SQLlite
Firebird
VistaDB(不是免费的),
SQL Server Compact Edition(不是Express)
以及现在的SQL Server LocalDB
都可以想到。

另一个想法是:虽然最初的问题确实询问了桌面数据库,但可能有人会来这里寻找要与网站一起使用的数据库。重要的是要记住,这些都是进程内数据库,因此很少在网络上使用。如果要建立一个网站,通常需要支持大量的并发访问,则通常需要一个数据库服务器引擎,例如MS SQL,Postgresql,MySQL,Oracle或其兄弟。同时,那些服务器引擎很少适合单用户桌面应用程序。


...除了Firebird,Firebird跨越边界,可以在两种情况下使用。好点,但是。
user60401

7
SQLite,我喜欢它。
Alix Axel

为什么选择SQL Server Compact Edition而不能使用Express?这仅仅是因为大小吗?
Mark3308

@Mark-Express Edition仍然是服务器级数据库,而不是像其他数据库那样的进程内数据库。阅读答案的第二部分,有关服务器引擎的所有内容(包括最后一句话)都适用于Express Edition。
Joel Coehoorn

好的,我没有意识到Compact Edition是In Process数据库。感谢您指出了这一点。
Mark3308

127

当人们要求替换Access时,很多人只考虑数据库,但是他们真正要问的是Access中的所有其他功能。他们通常不在乎Access使用的是什么数据库。

Access提供的一些功能包括:表单,查询构建,报表,宏,数据库管理以及某些您需要超越向导提供的语言。

SQLite,MySQL和FireBird是免费的数据库后端。它们没有内置的其他Access功能。Access的任何免费替代方案都要求您结合使用SQLite和开发语言。

最好的免费选项可能是SQLiteVisual Basic 2008或C#2008 Express Edition。这将对运行时造成严重的依赖性,因此在裸客户端上进行安装可能需要相当多的安装程序。

实际上,没有最低运行时间要求的免费非访问选项是免费的。我希望有。

如果有人知道任何其他不错的选择,我会很感兴趣。


5
是的..人们没有意识到访问的强大功能是如您所强调的那样是一个整数化的开发环境...甚至没有内置大多数(更不用说全部)功能的Microsoft访问,没有比这更免费的了。当您可以访问...您可以在短时间内通过其他方式完成很多事情... 100%同意您的回答@bruceatk
ihightower 2015年


68

Schnapple问:

您是在指与应用程序一起分发的免费数据库的概念,还是类似于Access的“单个文件,无需安装”的数据库?

嗯,没有任何具有Access应用程序开发能力的人会分发单个MDB / ACCDB作为应用程序/数据存储。任何非平凡的Access应用程序都需要分为具有表单/查询/报告(即UI对象)的前端和具有后端(仅数据表)的前端。

显然,这里需要的是诸如Access之类的数据库应用程序开发工具。仅有数据库的答案都无法以任何方式对此做出响应。

在回答Access问题之前,请先了解Access:

  • Access是一个数据库应用程序开发工具,附带一个名为Jet的默认数据库引擎。

  • 但是,只要有用于该数据库引擎的ISAM或ODBC或OLEDB驱动程序,就可以构建Access应用程序以处理几乎所有后端数据库中的数据。

微软本身在掩盖Access(开发工具)与Jet(数据库引擎)之间的差异方面做得很好,因此,很多人不认识这种差异也就不足为奇了。但是开发人员应该使用精确的语言,当您使用数据库引擎时,请使用“ Jet”,当您使用前端开发平台时,请使用“ Access”。


从技术上讲,David在Access 2007和更高版本的文件中,它使用Jet的Office特定版本,称为Access Connectivity Engine(ACE)。
Bobort

17

老实说-MS Access没有免费的替代品。至少如果您指的是数据库开发工具(表单,报表,查询,VBA支持等)。如果您将MS Access视为数据库引擎(实际上是指MS Jet或ACE),那么可以-您有很多可能性。有很多免费的数据库引擎-最受欢迎的是MySQL和PostgreSQL。我可以推荐两者-这取决于您要做什么。

对于编写数据库前端,C ++是最差的选择之一。您应该考虑使用MS Visual C#,MS Visual Basic .NET或...甚至Java / Swing(如果我们正在谈论桌面应用程序)。如果您考虑启用Web的前端,请考虑使用PHP(后端使用MySQL或PostgreSQL)或ASP.NET(后端使用MSSQL Server)。

我强烈建议您不要将C ++用于此类工作。这种语言非常有效且灵活,但是用C ++进行高级数据库前端开发并不是最好的主意。C ++在系统编程,游戏开发,数学和物理模拟等领域都非常出色,在效率是关键的任何地方(例如实时应用程序等)。前端不必一定是速度的守护程序,它们应该看起来不错,并且拥有先进的最终用户功能(例如排序,着色等)。如果您正在寻找免费工具-也许C#Express或Visual Basic.NET Express 2008是正确的选择?还是Java / Swing(请检查NetBeans IDE)?也许SharpDevelop?但是不是C ++。。。让C ++做最适合自己的事情。


15

退房suneido

几年前,我做了一个相当复杂的GIS应用程序作为实验(数据库,复杂的gui,报告,客户端/服务器)。这是一个令人愉快的经历(除了一些文档问题...),而且我的工作效率很快。

我不再使用它的主要原因是:

  • 这不是真正的通用目的
  • 它不是跨平台的(仅适用于Windows)
  • 我决定停止探索外来技术,而专注于主流技术。

10

在自由软件的替代方案中,尚未提及:

我还将密切注意Flex / Air社区即将推出的DB RAD工具,因为有了这些工具,就有可能获得统一的桌面和Web界面。


1
雷卡(Rekall)似乎已经死了,而格洛姆(Glom)似乎还不成熟,还没有被广泛使用。我将完全跳过客户端-服务器范例,而使用诸如WaveMaker之类的Web 2.0。
罗宾·格林

1
自2012年以来,Glom似乎没有更新,因此可能在这一点上已经死了。
WhatEvil

9

带有Application Express的Oracle XE。

  • 有一个不错的基于Web的gui,
  • 是一个“真实”数据库
  • 将扩展到单个桌面之外
  • 提供超越小型团队的明确途径
  • 基于Web的应用程序,易于访问。
  • 可以将Excel电子表格转换为应用程序

7

问题是找到一种替代MS Access的方法,其中包括具有“合理”数据库的可视化,拖放式开发环境,可以在其中免费部署整个套件和cabo​​odle。

我的第一个建议是看一下非常完整的MS Access替代产品列表(其中许多是免费的),然后是osalt.com上的开源数据库开发工具列表。

我的第二个建议是检查WaveMaker,它是一种用于云的开源PowerBuilder(免责声明:我在那儿工作,因此不应被视为公正的信息源;-)

WaveMaker将拖放式IDE与开放源Java后端结合在一起。它已获得Apache许可,并拥有15,000个强大的开发者社区。


我发现在引用的URL上进行的评估对Access替代项非常慈善。它们中没有一个真的非常接近复制Access的功能集。这并不意味着它们对于任何数量的项目都是不错的选择,只是它们无法替代Access所做的一切。我所知道的唯一接近的平台是FileMaker,它在脚本编写和数据连接方面相对较弱。
David-W-Fenton

这是@C Keene的一个很好的链接。感谢分享。
Onorio Catenacci

我同意@David Fenton的观点-MS Access是一款非常成熟且功能齐全的产品。如果您想要做MS Access 可以做的所有事情,则MS Access是唯一符合要求的产品。“正确的答案”归结为您愿意做出哪些特别的妥协(例如,有限的脚本或报告),以及从新平台中获得的其他好处(例如,开源,基于Java等)
C Keene

7

NuBuilder(www.nubuilder.net)可能是正确的。

NuBuilder是GPLv3许可的PHP Web应用程序,需要MySQL作为后端数据库。用户和程序员都使用Web界面。

他们将其作为免费的,基于Web的MS Access替代品进行推广。这些天,我正在创建第二个NuBuilder应用程序。NuBuilder似乎非常积极地开发,我发现它稳定且有据可查(只要您可以观看视频教程)。


6

您可能需要研究SQLite(http://sqlite.org/)。一切都取决于您的用法。例如,并发并不是它的最大优点。但是例如Firefox使用它来存储设置等。


6

在编程论坛的背景下,我们通常不会想到程序员也需要数据库的应用程序部分。通常,程序员希望将自己的开发环境用于业务逻辑和前端,而仅使用数据库的存储,查询,检索和数据处理功能。

如果您真的想要所有其他这些东西,那么您正在谈论的是一个更大,更复杂的运行时环境。您将再也找不到“轻量级”的东西了。甚至MS Access本身也不再合格,因为它的重量轻。幸运的是,很多用户可能已经拥有了它,使它看起来很轻巧。

这并不意味着您将找不到任何东西。只是它不太可能具有与Access相同的成熟度或分布水平,特别是因为底层访问引擎已经被烘焙到Windows中。


6

Access运行时许可证从未如此昂贵-只要我记得,开发人员工具/扩展的费用一直在300美元左右(这可以追溯到Access 2 Developers Toolkit或ADT),但是使您能够将运行时的应用分发给无限数量的用户。只要您的运行时应用程序被三个或更多用户使用,您就可以节省金钱(假设安装Access的完整副本的费用为每位用户$ 100)。

Access 2007的运行时是完全免费的,但实际上,在此之前的成本并不是很高。

马克·格雷夫(Marc Gravell)补充说(我认为应该发表评论):
但是,免费无疑鼓励人们尝试300美元的价格。


5

VistaDB具有可免费使用的快速版本,其语法和驱动程序与SQL Server兼容。VistaDB是单个文件,仅需要其驱动程序.dll才能在asp.net或winforms项目中工作。

由于它与语法和数据源兼容,因此可以根据需要升级到SQL Server。

从他们的网站:

VistaDB是使用C#,VB.NET和其他CLR兼容语言的完全托管且类型安全的ASP.NET和WinForms应用程序。

VistaDB.net



4

您是在指与应用程序一起分发的免费数据库的概念,还是类似于Access的“单个文件,无需安装”的数据库?

例如,SQL Server Express Edition之类的东西需要安装运行时,创建和安装数据库,人们无法识别的“开始”菜单上的条目(我的妻子问为什么那天有SQL Server在她的笔记本电脑上) Access数据库可以在单个文件中运行。

我想我要问的是,您是否想将数据库视为您要写入的文档或他人机器上某物的实例?


4

r:Base呢?早在r:Base的时代就是一个非常强大的DOS(然后是Windows)RDMBS,这是Access / Paradox之前的时代。它最接近的竞争对手是dBase,但当时并不是完全相关的。我开发了一些非常不错的r:Base应用程序,并且像今天的Access一样,具有内置的报表生成器,表单工具,查询和表操作。.令我惊讶的是,它仍然有效! http://www.rbase.com/ 看来,它获得了所有访问权限。可能是您要考虑的东西。


1
哇,我以为r:Base也走了。好链接最佳。
Onorio Catenacci

@SmartMethod,您是否有从RBase(* .rbf)到其他某些数据库(例如Access或MSSQL)的秘密工具?
海军上将土地

@海军上将土地-最近没有,没有。已经有一段时间了。我上次做的是早在2010年初的r:Base to MS SQL Server客户端。
Taptronic

1
@SmartMethod,我解决了我的问题,谢谢!
海军上将土地

4

Kexi 2007.1.1 可能是您想要的。

它的快速版本是免费的,但数据库大小受限制。完整版售价为72美元。

从其主页上的描述:Kexi是一个易于使用的应用程序,用于Linux和MS Windows的可视化数据库设计。Kexi与MS Access,FoxPro,Oracle Forms和FileMaker竞争。

有关详细信息,请访问http://www.kexi-project.org/about.html




3

与Aurelio的答案非常一致,我现在在Ruby on Rails中处理某些以前可能在MS Access中完成过的应用程序。Rails应用程序的后端数据库。通常是MySql(运行良好,可以在大多数共享Web托管上使用)或PostgreSQL(在可能的情况下,是更好的选择)。


很高兴见到你,史蒂夫!多年以来没有听到任何消息,希望您一切都好……我很想听听您关于Ruby on Rails的经验。我已经看过它了,看起来对一个项目太笨拙的承诺太大了(从我的角度来看,它看起来像一个大图书馆,因此执行了自己的逻辑-并非字面上而是隐喻的)。
David-W-Fenton'2

做得好是相对的-我将在不久的将来通过其他渠道详细说明。就个人而言,我爱Rails并拥有多年的经验,但我永远不会说这对每个人都是正确的。这一个很大的承诺,但是IMO语言使Ruby语言非常强大且富有表现力,并且是一种学习的乐趣。Rails是一个“有针对性的”框架,其中包含了大量的默认库,但是许多库都是可选的和可交换的,因此它的限制比最初出现的要少。Rails社区也确实很棒,这显然很重要。
史蒂夫·乔根森


2

我也是你的问题 我有一个MS Access应用程序,但是我想转到每个人都可以访问的Web应用程序,而不必花钱给MS。因此,我决定使用MySql和Wavemaker(开放源代码)来获取范围。。我对此决定感到非常高兴。结果就是http://www.mara-database.org/


我认为您没有在回答所提出的问题。
David-W-Fenton,2010年


2

您似乎在寻找的不仅仅是一个数据库程序,而是一个具有表单,报表等(基本上是各种IDE)的数据库。我建议尝试使用Office套件随附的OpenOffice.org Base。它是免费和开源的。它的访问权限远不及访问权限,但它的功能几乎相同。

另外,如果您知道访问权限,至少会有点熟悉。

http://www.openoffice.org/

编辑:对不起,未能读取您正在考虑OpenOffice.org。关于稳定性,当我使用它时,它已经崩溃并做了一些“奇怪”的事情,但是Access做了同样的事情。找出答案的最佳方法是稍微玩一下,看看它是否适合您。


1

我认为OpenOffice.org附带的数据库中包含表单设计器。不过,我从未尝试为此编写代码。我看到的一个论坛帖子有一个教程的链接,他们说其中包含一些代码。

我开始为我的妻子建立一个数据库,据我所知,界面非常好。

oooForum.org教程


2
我很想使用OO.0中包含的内容,但是上次我检查它时,它太原始了。
Onorio Catenacci

0

对于sqlite,请查看firefox扩展。它提供了可维护的GUI。


这不只是让您管理数据库而不实际创建“轻量级桌面应用程序”吗?
JeffO

是的,但是我认为发问者的是数据库,而不是轻量级的桌面应用程序。MSAccess非常擅长于此,很难替换。
Christopher Mahan

@克里斯托弗·马汉(Christopher Mahan):您是从最初提问者的反复断言中确切地得到这个想法的,他断言他正在询问整个软件包(尤其是前端开发),他“是在请求数据库而不是轻量级的桌面应用程序”?问题很明显,这是整个程序包,因此,仅数据库的任何答案对于该问题都是完全错误的。
David-W-Fenton

@戴维:你是对的,当然。我建立了许多具有访问权限的数据库。那是我在1997-1999年的全职工作。我记得建立一个模块功能来根据网络邻居自动重新链接表。
Christopher Mahan

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.