在Access中使用系统表保存应用程序变量方法
作者:[网上资料 ]
在开发Access应用程序时,一般需要在窗体和模块中引用许多变量。为管理这些变量,当然可以在启动窗体中使用Microsoft Visual Basic for Application(VBA)来设置它们的值,然后再调用某个模块,由该模块初始化这些值。
然而,在完成应用程序开发之后,使用这个方法的问题出现了:其他人可能需要在将来某个时候改变那些值,却不知道从何处开始。我建议在数据库中建立一个名为SystemTbl的表,然后用户可以访问这个表,并在恰当的时候修改数据。
建立表和窗体
将表创建好并将变量添加到表中的新记录之后,可以为用户创建一个只允许修改而不能添加或删除记录的窗体,表中应该只包含一条记录保存有关使用方法的信息。一旦保存完所有变量,可以在应用程序需要的时候使用VBA来检索那些变量值。
例如,假设应用程序需要保存应用程序管理员的姓名和电话号码,正如你刚才所了解到的,这条信息要求容易修改,如果把它编写到窗体或模块的代码中没有什么意义。
该表预定义了一条记录和两个字段(到目前为止):
表:SystemTbl
字段1:AdminName
字段2:AdminPhone
当需要在窗体上向用户显示恰当的姓名和电话号码时,可以使用OnOpen或OnLoad事件填充窗体上的相应标签,在本例中,我们把标签命名为“PhoneLabel”和“NameLabel”。清单1.10 .A显示了这个示例函数的代码。
在该示例函数中,我们以SnapShot-ForwardOnly方式打开记录集,以减少访问记录集时占用的资源;然后,我们将表中字段的值应用到Name和Phone标签的标题上。
最后,关闭记录集。永远记住要关闭记录集,它会累积为不需要的资源,导致性能降低甚至更糟糕的问题。由于系统表中只有一条记录,检索过程极快。现在,你已经给一个有效的数据库应用程序添加了可扩展的解决办法。
|
然而,在完成应用程序开发之后,使用这个方法的问题出现了:其他人可能需要在将来某个时候改变那些值,却不知道从何处开始。我建议在数据库中建立一个名为SystemTbl的表,然后用户可以访问这个表,并在恰当的时候修改数据。
建立表和窗体
将表创建好并将变量添加到表中的新记录之后,可以为用户创建一个只允许修改而不能添加或删除记录的窗体,表中应该只包含一条记录保存有关使用方法的信息。一旦保存完所有变量,可以在应用程序需要的时候使用VBA来检索那些变量值。
例如,假设应用程序需要保存应用程序管理员的姓名和电话号码,正如你刚才所了解到的,这条信息要求容易修改,如果把它编写到窗体或模块的代码中没有什么意义。
该表预定义了一条记录和两个字段(到目前为止):
表:SystemTbl
字段1:AdminName
字段2:AdminPhone
当需要在窗体上向用户显示恰当的姓名和电话号码时,可以使用OnOpen或OnLoad事件填充窗体上的相应标签,在本例中,我们把标签命名为“PhoneLabel”和“NameLabel”。清单1.10 .A显示了这个示例函数的代码。
在该示例函数中,我们以SnapShot-ForwardOnly方式打开记录集,以减少访问记录集时占用的资源;然后,我们将表中字段的值应用到Name和Phone标签的标题上。
最后,关闭记录集。永远记住要关闭记录集,它会累积为不需要的资源,导致性能降低甚至更糟糕的问题。由于系统表中只有一条记录,检索过程极快。现在,你已经给一个有效的数据库应用程序添加了可扩展的解决办法。
|