Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 保存ID字符串的最佳方法?_Vba_Ms Access - Fatal编程技术网

Vba 保存ID字符串的最佳方法?

Vba 保存ID字符串的最佳方法?,vba,ms-access,Vba,Ms Access,我很好奇,在VBA/Access中保存用户ID的最佳方法是什么。用户ID将以各种形式用于跟踪用户所做的更改。在.net中,我要做的是创建一个包含用户ID变量的类,或者使用my.system.settings。既然这不是一个选项,那么有什么方法或“方法”可以将变量保存在内存中或作为引用。我想到的是一个“设置”表,但我不确定这是否过份,或者是否有一种已知的更好的方法。在Access中,持久化值意味着将其存储在数据库表中。根据您的描述,我假设您的意思是在当前会话期间保持该值。在这种情况下,一旦从表中获

我很好奇,在VBA/Access中保存用户ID的最佳方法是什么。用户ID将以各种形式用于跟踪用户所做的更改。在.net中,我要做的是创建一个包含用户ID变量的类,或者使用my.system.settings。既然这不是一个选项,那么有什么方法或“方法”可以将变量保存在内存中或作为引用。我想到的是一个“设置”表,但我不确定这是否过份,或者是否有一种已知的更好的方法。

在Access中,持久化值意味着将其存储在数据库表中。根据您的描述,我假设您的意思是在当前会话期间保持该值。在这种情况下,一旦从表中获取了值,就可以将其存储在全局变量中,或者作为已实例化的类的实例的属性

另一个特定于访问的选项是将该值设置为窗体上隐藏标签的标题。这可以在主交换机窗体上,在整个会话期间保持打开状态,也可以在启动时打开的隐藏窗体上,并且在整个会话期间保持打开状态


可以创建注册表项,但我可能更喜欢使用隐藏表单。无论采用哪种方法,都必须确保该值在整个会话期间保持不变。

如果希望ID仅在该特定会话期间保持不变,则
全局变量可能最适合您

如果希望它在更改之前一直保留在计算机上,那么使用注册表会更好

'SaveSetting appname, section, key, setting
SaveSetting "MyApp", "ID", "Value", "12345678"
'GetSetting(appname, section, key[, default])
CurrentID=GetSetting "MyApp","ID","Value" ' Add ,"DefaultValue" if you want a marker for if there is no value set  
'DeleteSetting appname, section[, key]
DeleteSetting "MyApp", "ID" ' add ,"Value" if you only want this specific key deleted

Environ$(“Username”)
就足够了吗?我确实考虑过这一点,但当前的设计是使用数字作为用户ID,而不是实际的帐户名。编码为数字值?有很多麻烦吗?一个小小的变化,而不是添加隐藏标签,是将主(交换机)窗体的
Tag
属性设置为user-id。
Me.Tag=12345
。然后读成
表单!frmSwitchboard.Tag