在构建将促进未来可伸缩性的Microsoft Access数据库应用程序时,我应该遵循哪些最佳实践技术?

时间:2018-04-19 18:02:45

标签: sql-server asp.net-mvc ms-access access-vba

我迫切需要使用Microsoft Access构建数据库和应用程序,并且业务需求仍然非常流畅。我期待从Access迁移到基于浏览器的解决方案。有许多解决方案可用于将数据库移动到新平台,因此我更关注前端开发。我现在可以在Access中做什么来设计我的业务逻辑和UI代码,以便以最小的痛苦和返工来实现未来的发展?

1 个答案:

答案 0 :(得分:-1)

好吧,如果你用c ++编写代码,但是想要使用像JavaScript这样的网络代码,那么你谈论的是一种非常不同的语言和编程。

此外,如果你用JavaScript编写代码,但计划使用说FoxPro,或者将来说c#,那么你再次使用一种非常不同的编程语言。

所以在一天结束时,Access中的编程语言是VBA,它肯定不会在asp.net中运行。

但是,您可以转储c#并使用vb.net。

如果您采用vb.net,那么您的VBA代码的重要部分将转移到说asp.net + MVC。

除非你愿意宣布你要为asp.net/mvc应用程序选择vb.net,否则你的问题没有意义,并且与asp.net和你编写的代码非常相关。 / p>

您无法使用您在Access中为未来项目编写的代码,所以这对您来说确实是个蹩脚的问题。

但是,如果您声明您愿意使用vb.net代替c#,那么您可以采用多种方法,这些方法将允许您的大部分代码使用asp.net进行非常少的更改

所以这里的主要建议是,因为你的代码将用VBA编写,如果你真的在这里问一个诚实的问题,并且真的想将代码转移到asp.net,那么最好的建议是使用vb.net与Visual studio。

虽然Access中的表单代码不会转移到vb.net,但标准代码模块以及您在Access中编写的类对象将通过非常少的更改进行转移。 (假设你采用vb.net)。

这意味着您可能希望确保“常规”代码例程不会放在表单中,而是放在标准代码模块中。

但是,如果你不愿意采用vb.net作为asp.net应用程序的编程语言,那么你的问题确实没有意义,因为VBA和c#是如此的不同。

所以最好的选择是使用vb.net,因为那时用VBA / Access编写的代码模块将转移到vb.net,但变化很小。对于在Access中创建+创建的类对象代码也是如此,并且再次将这样的用Access / VBA编写的类对象代码移动到vb.net,并且几乎没有变化。因此,您在VBA中编写的类对象确实很好地转移到vb.net

现在,如果这个问题是关于数据结构和表格,那么还有其他提示,但您的问题仅限于编写代码,而不是您计划使用的数据库或数据系统。 (这将是一个不同的新问题,而不是如何在Access中编写代码转移到asp.net(答案很简单 - 使用vb.net + asp.net)。

为防止进一步的downvotes,我将使用REAL代码演示这一点。

假设您需要一个例程,在您选择文件后,您想检查文件是否存在于文件夹中,如果存在,则附加一个数字。

所以,如果

MyData.zip存在,然后例程返回

MyData02.zip

这是常见的代码。来自Access的以下代码工作正常,然后在生产的asp.net应用程序中使用。因为我选择了Vb.net,所以我能够直接从Access中粘贴VBA代码,并在REAL LIVE生产的asp.net应用程序中使用此代码。请注意代码在VBA和asp.net中的代码是100%相同的

Public Function GetServerFile(strFile As String) As String

    Dim strDir As String
    Dim strF As String
    Dim i As Integer

    strDir = UpLoadFolderPath()

    ' check if file already exist - start increamnt -N to file name
    Do
        If i = 0 Then
            strF = strDir & strFile
        Else
            strF = strDir & FileOnly(strFile) & "-" & i & ExtOnly(strFile)
        End If
        If FileExists(strF) = False Then
            Exit Do
        End If
        i = i + 1
    Loop

    GetServerFile = strF        ' return

End Function

所以上面的内容是我的帖子的证明。

海报问题是100%合法的。

如果您为asp web应用程序选择vb.net,那么您在VBA中创建和编写的许多类对象将转移到vb.net

在这个例子中,它甚至不是一个类对象,而是从Access应用程序VBA中剪切+粘贴的代码,并简单地放入asp.net中的代码模块中(vb.net允许两个类模块,或简单地像访问中一样添加代码模块。

代码在Access和asp.net中运行良好

在asp.net中上传文件后使用代码来防止文件冲突并使用02,03等增加文件名。因此在Access中编写许多以前的代码在asp.net/vb.net中运行,并且它运行没有任何修改。