Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求助!要求变量声明

大石  发表于:2009-11-05 10:11:36  
复制

用Option Explicit就没问题,

若用在VBE--工具--选项中勾选的“要求变量声明”的话,就不能实现和Option Explicit一样的功效,请问是什么原因呢?

 

Top
andymark 发表于:2009-11-05 11:18:51

Microsoft Visual Basic (Microsoft Visual Basic:Basic 的一种高级可视化编程版本。Visual Basic 由 Microsoft 开发,用于生成基于 Windows 的应用程序。) 并不自动要求必须明确地进行声明之后才可以在过程 (过程:模块中作为一个单元执行的一系列声明和语句。Visual Basic 中的过程包括 Sub 和 Function 过程。)中使用变量 (变量:已命名存储位置,所包含的数据能够在程序执行过程中发生变动。每一变量都有名称,在它的作用域级别范围内能够唯一标识该变量。既可以指定数据类型,也可以不指定。)。如果使用尚未明确声明的变量,Visual Basic 会将变量隐式地声明为 Variant 数据类型。虽然隐式的声明很方便,但可能会在代码中导致难以觉察的错误。

可以要求在过程中使用变量之前必须对其进行声明。Microsoft Access 在数据库中所有新模块 (模块:存储在一起作为一个命名单元的声明、语句和过程的集合。有两种类型的模块:标准模块和类模块。)的“声明”节 (声明节:包含声明的模块节,应用于模块中的每个过程。它可以包含用于变量、常量、用户定义的数据类型以及动态链接库中的外部过程的声明。)中自动包含 Option Explicit 语句,这些模块包括与新窗体或报表关联的窗体 (窗体模块:该模块中包含在指定的窗体或其控件上事件发生时触发的所有事件过程的代码。)和报表模块 (报表模块:该模块中包含由在指定报表或其控件上发生的事件触发的所有事件过程的代码。) 。

在“工具”菜单上,单击“选项”。
单击“编辑器”选项卡。
在“代码设置”下,选中“要求变量声明”复选

 

 

 

在VBE--工具--选项中勾选的“要求变量声明”后,新建的窗体,模块,会自动Option Explicit 语句

 

 

 

Option Explicit 语句
     

在模块级别中使用,强制显式声明模块中的所有变量。

语法

Option Explicit

说明

如果使用,Option Explicit 语句必须写在模块的所有过程之前。

如果模块中使用了 Option Explicit,则必须使用 Dim、Private、Public、ReDim 或 Static 语句来显式声明所有的变量。如果使用了未声明的变量名在编译时间会出现错误。

如果没有使用 Option Explicit 语句,除非使用 Deftype 语句指定了缺省类型,否则所有未声明的变量都是 Variant 类型的。

注意 使用 Option Explicit 可以避免在键入已有变量时出错,在变量的范围不是很清楚的代码中使用该语句可以避免混乱。



andymark 发表于:2009-11-05 11:27:08

For I = 1 To 10
  Debug.Print I
Next

 

 

上面的语句在没有Option Explicit 时,运行没问题

 

加了Option Explicit语句后必须对I进行声明

 

Dim I As Integer
  For I = 1 To 10
  Debug.Print I
Next

 

 

在VBE--工具--选项中勾选的“要求变量声明” 后,  新建的窗体,模块,系统会自动增加Option Explicit语句来强制显式声明变理

 

而不应理解为VBE--工具--选项中勾选的“要求变量声明” 后, 来替代Option Explicit语句



总记录:2篇  页次:1/1 9 1 :