【问题标题】:combining ms access vba codes结合 ms access vba 代码
【发布时间】:2012-03-03 15:40:49
【问题描述】:

我和我的同事正在开发一个基于 ms 访问的应用程序。我们正在设计和编码不同的页面/表格以划分工作。我们计划稍后合并我们的工作。我们怎样才能做到这一点而不会破坏设计和宏等问题?我们使用 Ms access 2007 作为前端,使用 sqlserver 2005 作为数据源。


我在 bytes.com 的某个地方找到了一个想法。我可以导入我想要的表单、报告、查询、数据和表格。我要试试这个。然而,这只是一个想法。因此,需要通过反复试验技术来研究这种方法。

【问题讨论】:

  • 据我所知,您几乎可以将任何对象从一个访问文件导出到另一个文件……右键单击……导出。这真的是你要找的全部吗?

标签: sql-server vba ms-access-2007 code-snippets


【解决方案1】:

最重要的要求是在开始编码之前完成整体设计。例如:

  • 所有表单必须具有相同的样式。帮助和错误信息必须以相同的方式在每个表格上提供。如果用户可以将表单分成两组,那么您就失败了。
  • 数据库设计必须以对每个表、其关系和属性的完整书面描述完成。
  • 必须定义每个主要宏的用途和参数。如果宏 A1 仅用于服务宏 A,则 A1 不是主要宏,只有 A 的作者需要知道其详细信息,直到编码完成。
  • 同意文档样式和详细程度。如果应用程序需要在 6 个月或 12 个月后增强,您应该能够像自己处理其他宏和表单一样轻松。
  • 如果你们中的一个人认为在编码开始后需要对设计进行更改,则必须将此更改记录在案,并征得对方同意,并将更改规范添加到主规范中。

很多年前,我讲过(电子数据交换 (EDI))。使用 EDI,规范分为两部分,一组组织为消息发送者提供应用程序,另一组为消息接收者提供应用程序。我经常使用一个示例在我的讲座中帮助我的听众理解完整、明确的规范的重要性。

我想要两个形状,一个 E 和一个反向 E,我可以将它们组合在一起形成一个 10 厘米的正方形。我不在乎它们是由什么制成的,只要它们完美地结合在一起。

如果我把这个任务交给一个组织,这个规范就足够了。一个组织可能使用纸板,另一种金属,但我不在乎。但假设我要求一个组织创建 E,另一个组织创建反向 E。如果我要得到我的 10 厘米见方,我的规格必须有多详细?我会建议:E 的材料、厚度和尺寸。我的听众会竞相提出越来越多必须匹配的模糊特征:密度、颜色、图案、纹理等。

我并不总是相信我的听众听了我演讲的其余部分,因为他们正在寻找一种可以限制所有其他人的特征。无论如何,我已经理解了我的主要观点,这就是为什么 EDI 规范没有令人难以置信的详细。

您的情况不会那么困难,因为您和您的同事可能在同一个房间,并且可以随时交谈。但是我希望这个例子可以帮助你理解如果你一开始不同意完整的设计,那么你的两个部分之间的接口是多么容易变得不那么无缝。正是这些小假设——虽然你知道我是这样做的——这会扼杀你的应用程序。

新版块

好吧,我之前的大部分建议可能都不适合你的情况。

因此,您正在尝试修改不是用您不知道的语言编写的代码。祝你好运;你会需要它。

我认为范围将是您最大的问题。大多数现代语言都有命名空间,允许您根据需要为变量或例程提供尽可能多或尽可能小的范围。 VBA 只有三个级别。

在函数或子例程中声明的变量自动为该函数或子例程私有。

在模块内声明为Private 的变量对其他模块中的函数和子例程不可见,但对模块内的任何函数或子例程可见。

在模块中声明为Public 的变量对项目中的任何函数或子例程都是可见的。

在表单中声明的​​任何内容都是该表单私有的。如果表单希望将值传递给外部函数或子例程,则可以通过写入公共变量或将其作为参数传递给公共函数或子例程来实现。

避免命名冲突在 VBA 帮助中提供了有用的建议。

表单和模块名称在合并项目中必须是唯一的。您将无法避免拥有其他函数和子例程可见的常量、变量、函数和子例程。 避免命名冲突提供了一种方法。我成功使用的一种方法是将应用程序划分为子应用程序,如果需要,还可以划分子子应用程序,并为每个子应用程序分配一个前缀。如果每个公共常量、变量、函数和子例程名称都有适当的前缀,您就可以模拟命名空间类型控制。

【讨论】:

  • @Pynner 和 Tony:已经存在一个基于 ms access 2007 的应用程序,它需要与 UI 相关的一些更改,包括向现有表单添加子表单或创建一些新表单。因为我们(新要访问)正在不同的服务器上工作,我们需要合并更改以准备好最终的应用程序。 UI 和数据库的设计是不可篡改的,所以一切都是同步的。此外,一个包含大约 60 个表单和报告的应用程序大约有 14 处更改,这意味着我们在合并时需要非常小心,以免影响现有表单。
  • @user1175126。我希望我的新部分更适合您的情况。
  • 感谢托尼非常需要的建议。我们也在努力弄清楚如何进行这次合并。我应该从同事的工作中复制表格和子表格并分别粘贴到我的应用程序和表格中?
  • 到目前为止,我的建议很笼统,与我参与的项目有关。但是,我从来没有合并过两个 Access 项目,我觉得没有能力说得更具体一些。也许其他人可以提供帮助。
  • 嘿!我在 bytes.com 的某个地方找到了一个想法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多