VBA编程注意事项-避免命名冲突-福哥
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


VBA编程注意事项-避免命名冲突

发表时间:2022/10/13 8:25:01 评论(0) 浏览(1492)  评论 | 加入收藏 | 复制
   
摘 要:尝试创建或使用之前已定义的标识符时发生命名冲突。 在某些情况下,命名冲突会生成错误,例如检测到不明确 名称 或当前作用域 中的重复声明。 未检测到的命名冲突可能导致代码中产生错误结果的错误,尤其是在首次使用前未 显式声明所有 变量时。
正 文:

尝试创建或使用之前已定义的标识符时发生命名冲突。 在某些情况下,命名冲突会生成错误,例如检测到不明确 名称 或当前作用域 中的重复声明。 未检测到的命名冲突可能导致代码中产生错误结果的错误,尤其是在首次使用前未 显式声明所有 变量时。

可通过了解范围、私有模块级和公共模块级避免大部分命名冲突。

命名冲突可在标识符具有以下情形时出现:

·         在多个范围级别中可见。

·         在相同的级别具有两个不同的含义。

例如,不同的模块中的过程可能具有系统的名称。 因此,可在名为 MySub 和 Mod1 的模块中定义名为 Mod2 的过程。 如果仅从每个过程自己的模块中的其他过程调用该过程,则不会发生任何冲突。 但是,如果从第三 MySub 个模块调用,并且未提供用于区分这两个过程的资格限定,则可能会发生 MySub 错误。

大部分命名冲突的解决方法是在每个标识符前附加由模块名称和项目名称(如果必要)组成的限定符。 例如:

VB复制

YourProject.YourModule.YourSub MyProject.MyModule.MyVar

The preceding code calls the Sub procedure YourSub and passes MyVar as an argument. 使用限定符的任意组合来区分相同的标识符。

Visual Basic matches each reference to an identifier with the "closest" declaration of a matching identifier. MyID例如,如果在项目 (和) Mod2 Mod2 Mod2.MyID Mod2``Mod1 MyID 的两个模块中声明为 Public,则您可以在 中指定 中声明的 (不限定),但必须将它限定为 ,才能在 中指定Mod1它。

如果位于其他但 Mod2 直接引用的项目中, 也是如此。 但是,Mod2如果位于Mod2``MyID间接引用的项目(即您直接引用的项目所引用的项目)中,则对名为 的变量的引用必须始终使用项目名称进行限定。 If you reference MyID from a third, directly referenced module, the match is made with the first declaration encountered by searching:

·         直接引用的项目,按它们在"工具"菜单的"引用"话框中**** 显示顺序显示。

·         每个项目的模块。 请注意,项目中的模块没有固有顺序。

不可重新使用主机应用程序对象的名称,例如不同范围级别的 Microsoft Excel 中的 R1C1。

 提示

Typical errors caused by naming conflicts include ambiguous names, duplicate declarations, undeclared identifiers, and procedures that are not found. 通过使用 Option Explicit 语句从每个模块开始,在变量使用前强制进行显式声明,可以避免一些潜在的命名冲突和与标识符相关的 Bug。


Access软件网交流QQ群(群号:198465573)
 
 相关文章
[转载]access开发应用程序命名规则  【jhg1975  2010/1/15】
access数据库列名的命名规则  【quietwalk  2011/9/21】
access与VB编程--控件及变量命名规则  【等待虫  2011/10/21】
Access开发平台对象命名规则(UMV平台的对象命名规则)  【麥田  2013/1/24】
软件项目版本号的命名规则及格式   【缪炜  2015/12/11】
Access开发平台--错误#2123 SysFrmDataMod...  【麥田  2017/3/8】
Access命名规则/窗体、查询、表、字段名称命名规则  【杨雪  2017/5/25】
检查输入的文件夹名、文件名是否符合Windows的命名规则  【易勋  2019/1/10】
浅谈数据库命名规则的一些经验分享  【欧志华  2020/7/7】
常见问答
技术分类
相关资源
文章搜索
关于作者

福哥

文章分类

文章存档

友情链接