访问:设置和使用全局变量

时间:2019-03-26 16:12:02

标签: forms ms-access datatable access-vba global-variables

因此,我被要求为它创建表单的数据库非常复杂,看来我需要使用一些全局变量,而且由于我在VBA中还很陌生,所以这只是一个好习惯。我读过这样声明全局变量

Option Compare Database
Option Explicit

Public YourGlobalVariable As String

但是我很难弄清楚怎么说从表单中的文本框中获取用户输入并将其分配给YourGlobalVariable,然后以其他形式使用YourGlobalVariable并将其输入到桌子。

非常感谢您的宝贵时间,正如我提到的,我是Access和VBA的新手,因此非常感谢所有帮助!

编辑:示例...

以一种形式说,他们输入了10个活动。然后,他们必须以另一种形式对每10项活动进行评价。我需要一种方法来记录以下10个活动:1)数据库中的表2)以一种可以在将来用户填写的表格中将其吐出的方式。这就是为什么我认为全局变量会是完美的。每个活动字符串都有其自己的全局变量,可以在任何需要的地方使用。

1 个答案:

答案 0 :(得分:1)

您不需要也不想使用全局变量来传递一些值。在用于处理数据的.net,c ++,FoxPro或任何系统中,这是个坏主意。

以及在vb.net中如何使用全局变量,而VBA就是相同的。

第一个也是最重要的问题是用于输入这些活动的表格。尚不清楚您是否具有规范化的数据库,它们最终会输入10行数据(或5行或15行),并且此表格允许输入此类激活。

Access会为您完成所有肮脏的工作,因为此类表单是数据绑定的,并且不需要用于读取/写入/编辑数据的代码。

此时,用户已经输入了10个激活(但请注意,您的设计应允许3、5或50个激活)。

一旦他们输入了这些数据,就不清楚为什么不输入评分。

但是,我假设他们现在启动某种形式来输入评级。尚不清楚为什么原始表单简单没有将额外的文本框绑定到列等级。

因此,用户将在拥有等级信息时启动此表单,只需找到正确的记录,然后简单地输入等级或从您构建的漂亮组合框中选择它即可。

到目前为止,我们不必编写任何代码,只需创建绑定到表的表单即可。但是,如上所述,由于将要进行3或30个活动,所以我认为您的设计并非仅硬编码为10个活动。

我想像某些发票表格一样,您具有有关“事件”的信息来代替发票信息(客户等),然后是一个子表格,可用于输入一行或多行发票详细信息,或在这种情况下,此事件的所有可能事件和活动。

到目前为止,根据您的解释,此处所需的代码为零。

无需将10个事件传递给其他形式,只需启动用于输入事件和10个活动的表单即可,现在只需简单地编辑(输入)活动的结果或状态即可。< / p>

您的解释中没有任何内容表明需要全局变量,实际上到目前为止,您所解释的内容都可以使用Access表单完成,而无需任何代码。

您首先需要做的是在构建任何表单或编写一行代码之前,构建一组正确的表以使用此数据。使用正确的表设计,您的其余需求将变得微不足道,并且到目前为止,如果您使用Access的强大功能来构建此类表单,则看起来不需要任何代码。