gpt4 book ai didi

ms-access - 如何高效地进行Access VBA + SQL开发?

转载 作者:行者123 更新时间:2023-12-02 23:35:26 25 4
gpt4 key购买 nike

我是 80% 的 Ruby on Rails 开发人员,但仍然需要做一些 Access VBA 工作。

其中一些是非常糟糕的系统,很久以前就建立了,被全局大企业使用,所以大部分工作只是增强旧系统。

这些技术基本上都是 MS Access 作为前端,链接表通过 ODBC 链接到 SQL Server 作为后端。

现在,我真的认为我需要帮助,只是想知道是否有人可以遵循面向对象的模式构建优雅的 VBA 应用程序?

如果您能向我展示一段代码来演示它有多好,那就更好了,谢谢。

最佳答案

首先要记住的问题是,学习 MS Access 并没有神奇的捷径。多年来,我学习了很多开发平台,从大型机系统、数据库系统,一直到 PC 上的手工编码汇编器。我从头开始编写了两个工资系统(这些系统中包含加拿大税收公式)。一个系统是从头开始编写的 Pascal,我什至编写了自己的数据引擎。

毫无疑问,ms-access 是一个复杂的开发系统。

您可以在 Access 中构建外观华丽的死机应用程序。看看这些屏幕截图:

http://www.fairsoftware.com/screenshots.aspx

注意上面屏幕截图中很酷的丝带。

问题是你不可能一天学会 Unix,你也不可能一天学会 Oracle。 MS Access 也不是一天就能学会的。如果您需要维护的应用程序很复杂,那么您需要聘请具有 4-5 年经验的开发人员。认为以某种方式你能比 vb.net 或 c# 更快地掌握 ms-access 的想法在这里实际上是一个错误的概念。

事实上,我什至可以说,您学习 Oracle 的速度比学习 MS Access 的速度还要快。虽然 MS Access 的学习曲线不是那么陡峭,但它很长。

与 Access 相比,VB6 简直就是在公园散步。 VB6 表单非常简单,但 access 中的表单非常复杂(我们的事件和属性数量大约是给定表单的 3 倍)。例如,在 Access 中,我们有两个在表单加载时触发的事件(打开时和加载时)。 VB6 表单(甚至 .net 表单)只有一个事件。打开事件有一个取消选项。如果您设置cancel = true,则表单将不会加载并且不会显示。

从逻辑上讲,这意味着当您调用表单时,该表单有两个不同的事件用于两个不同的目的。因此,打开事件将具有用于验证和测试某些数据条件的代码(并允许您取消)。如果未取消 on-open 事件,则会触发 on-load 事件并加载表单。

从逻辑上讲,此时这意味着在表单上设置控件的变量或初始值的代码需要放置在 on-load 事件中(实际上控件不能修改,只能在 on open 事件中检查) 。因此,典型表单加载中发生的两个过程之间存在非常好的粒度和区别。值得注意的是,市场上的大多数产品都没有这两个单独的事件。

作为开发人员,您可以为给定的目的放置适当的代码并使用正确的事件。需要一些使用 Access 权限的经验来确定使用哪个事件来完成这些事情。您可以问是否有一本书可以解释这个问题,但这就像问是否有一本书告诉您何时使用组合框而不是列表框一样?我认为没有这样的书。

组合框的文档将解释什么是组合框以及如何使用它。对于打开事件的文档 Access 也是如此。您可以阅读 on-open 的作用,但是作为开发人员,您必须弄清楚何时适合使用该事件。当适当使用组合框或列表框时也是如此。归根结底,唯一的解决方案以及如何了解这些问题将是您作为产品开发人员的体验。

我有一篇文章讨论了在 MS Access 中使用类对象以及何时使用它们:

http://www.members.shaw.ca/AlbertKallal/Articles/WhyClass.html

如果您正在寻找从一切内容到表单、报告再到使用 Windows API 的代码示例,这里有一个很好的引用:

http://www.mvps.org/access/

关于ms-access - 如何高效地进行Access VBA + SQL开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com