2017-03-10 105 views
0

我是之前由承包商完成的应用程序的新维护者。该应用程序是在Access项目中使用VBA开发的。它完全由表单组成(其中一个是使用autoexec宏打开的)以及诸如点击处理程序之类的东西。除了在Access中使用ODBC表链接访问表格外,我没有看到它使用Access功能的任何用处。 这些都是原因,我想这个应用程序转换为一个独立的应用程序,如果可能的:使VBA Forms应用程序独立

  • 没有版本控制可言,同一个项目的附加在文件名的递增数量只是多个副本
  • 的VBA IDE是超级讨厌
  • 我觉得那么代码可以被迁移到更现代的语言,如C#或VB.net使它更易于维护

有没有办法将其转换为一个单独的Windows applicati在Visual Studio中可以维护(我猜想使用WinForms,因为它看起来与VBA中的表单相同)?

+1

我认为这将需要重写。我不知道有任何工具可以自动转换。很多代码可能可以重用。 –

+1

'有没有什么办法可以把它转换成一个单独的Windows应用程序'好,你需要在你选择的任何环境下开发新的应用程序..没有办法“转换”代码。 –

+0

是的,垃圾和重写是做什么。 – Gustav

回答

2

20年的访问支持标准的'微软源代码控制界面。这是在这篇文章中概述:

Version control for VBA file

而这一次在这里:

How to implement version control in Access 2003?

确实有很少或没有理由接入+ VBA,或vb.net不能使用与源代码控制。但是,作为Access一部分的SCC加载项在2013年被折旧。因此,对于2010年以后的版本,您可以使用脚本导出对象。这工作得很好 - 我使用GitHub和Access。所以你需要一个脚本来导出对象,因为SCC加载项并未包含在2010以后的版本中,并且工作得很好。 Access可以将每个对象视为“逻辑”分开。所以让一个文件夹,一个zip文件或Access连续器中的所有部分都没有实际意义 - 不要让这么多人无法理解的物理vs逻辑概念。

•VBA的IDE是超级讨厌

嗯,从来没有真正多大问题吧。我花了很多时间使用VS2013和vb.net,但大多数情况下,VBA IDE对于大多数Access应用程序都很好。你能举一个例子,说明你在VBA IDE中发现哪些功能或某些问题?

•我想,那么代码可以被迁移到更现代的语言,如C#或VB.net使它更易于维护

我不明白为什么用C++编写代码,或Pascal或VBA会或多或少地可维护?你必须举例说明你的意思吗?如果维护代码是COBOL,Pascal或VBA,则维护代码是可维护的。

我想使用的WinForms因为这似乎是一样的形式VBA

不,Access不使用的WinForms。

作为开发人员工具访问没有真正不同然后说使用FoxPro,或说德尔福。像其他任何软件开发系统一样,这些代码和系统可以重写,这要求我知道在过去30年的桌面开发中所说的。

作为一般规则,用Delphi编写的东西,或者Access + VBA不会被一些魔法行为转化为WinForms和.net。这适用于任何我知道的IDE和系统。

因此,通用计算机行业的软件过去从来没有这样用过,所以Access在这方面与其他大多数其他软件非常相似。

+0

>不, Access不使用winforms。 所以这是我错了那么。我认为它是Winforms,因此可以从VBA中提取(因为Winforms和VB6都可以在VBA之外使用)。我发现[这个商业项目](http://www.microtools.us/_product.aspx)在线,似乎正在进行转换,正如我通过执行源到源转换想象的那样。它看起来很有趣,但我想我会尽量保持该项目一段时间。 –