所以我有一个非常复杂的数据库,我被要求为其创建表单,看起来我需要使用一些全局变量,而且这只是很好的做法,因为我是 VBA 的新手。我已经阅读了声明全局变量
Option Compare Database
Option Explicit
Public YourGlobalVariable As String
但是我很难弄清楚如何说从表单中的文本框中获取用户输入并将其分配给YourGlobalVariable
,然后在其他表单中使用YourGlobalVariable
并将其输入到表中。
非常感谢您的时间,正如我提到的,我是 Access 和 VBA 的新手,因此非常感谢任何和所有帮助!
编辑:示例...
所以说他们以一种形式输入他们做的 10 项活动。然后,以另一种形式,他们必须对每 10 项活动的喜欢程度进行评分。我需要一种方法来记录这 10 个活动 1) 数据库中的表格 2) 以一种我可以在用户将要填写的未来表格中将它们吐出的方式。这就是为什么我认为全局变量将是完美的。每个活动字符串都有自己的全局变量,我可以在需要时使用。
您不需要也不想使用全局变量来传递一些值。在.net,c ++,FoxPro或用于处理数据的任何系统中,这是一个坏主意。
以及您在 vb.net 中使用全局变量的方式,VBA 是相同的。
第一个也是最重要的问题是用于进入这些活动的形式。不清楚您是否有一个规范化的数据库,并且它们最终输入了 10 行数据(或 5 行或 15 行),并且此表单允许输入此类激活。
Access 将为您完成所有繁琐的工作,因为此类表单是数据绑定的,并且不需要读取/写入/编辑数据的代码。
此时,用户已输入 10 次激活(但如前所述,您的设计应允许 3、5 或 50 次激活)。
一旦他们输入了这些数据,就不清楚为什么他们没有输入评级。
但是,我假设他们现在推出了某种允许输入评级的形式。不清楚为什么原始表单简单没有绑定到列评级的额外文本框。
因此,当用户确实有评级信息时,他们会启动此表单,只需找到正确的记录,然后简单地键入评级,或者从您构建的漂亮组合框中选择它。
到目前为止,我们不必编写任何代码,我们只是创建了一个绑定到表的表单。但是,如前所述,由于将有 3 或 30 个活动,那么我假设您的设计不是硬编码为仅 10 个活动。
我假设像一些发票表单一样,您有关于"事件"的信息代替发票信息(客户等),然后是一个子窗体,允许您输入一行或多行发票详细信息,或者在这种情况下,所有可能的事件和活动对于这个事件。
到目前为止,根据您的解释,这里需要零代码。
没有必要将 10 个事件传递给其他表单,只需启动用于输入事件的相同表单和 10 个活动,现在只需编辑(输入)活动的结果或状态。
您的解释中没有任何内容表明全局变量是必需的,实际上到目前为止,您解释的内容可以使用 Access 表单来完成,而无需代码。
您首先需要做的是在构建任何表单或编写一行代码之前构建一组正确的表来处理这些数据。使用正确的表设计,其余的要求变得微不足道,并且如前所述,如果您使用 Access 的强大功能来构建此类窗体,则看起来不需要任何代码。