当前位置:编程学习 > VB >>

回答问题的人好少,新菜鸟望指点啊

接触了VB几天,很多问题搞不伶清
1.在通用模块里用PUBLIC和private申明变量有什么不同,都是怎么用的
2.datagrid和MSHflexgrid有什么不同,看了很多程序,一会用这个一会用那个,到底什么情况下该用什么
3.设定启动的时候是用sub main()还是直接启动登陆窗体,这2个都有什么优缺点呢
4.为什么看了这么多示例,每个人写的相同功能的程序的代码都不一样呢,有规范吗,还是中国程序员就是这样
搞的越多头越大,自学真是伤脑筋啊,没个人指点 --------------------编程问答-------------------- Public 语句

      

在模块级别中使用,用于声明公用变量和分配存储空间。

语法

Public [WithEvents] varname[([subscripts])] [As [New] type] [,[WithEvents] varname[([subscripts])] [As [New] type]] . . .

Public 语句的语法包含下面部分:

部分 描述 
WithEvents 可选的。关键字,说明 varname 是用来响应由 ActiveX 对象触发的事件的对象变量。只有在类模块中才是合法的。使用 WithEvents,可以定义任意个所需的单个变量,但不能用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。 
varname 必需的。变量的名称;遵循标准的变量命名约定。 
subscripts 可选的。数组变量的维数;最多可以定义 60 维的多维数组。subscripts 参数使用下面的语法: 
  [lower To] upper [,[lower To] upper] . . . 
  如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有 Option Base 语句则下界为 0。 
New 可选的。用它可以隐式地创建对象的关键字。如果使用 New 声明对象变量,则在第一次引用该变量时创建该对象的新实例,因此不必使用 Set 语句来对该对象引用赋值。New 关键字不能用来声明任何内部数据类型的变量以及从属对象的实例,也不能与 WithEvents 一起使用。 
type 可选的。变量的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String * length(对定长的字符串)、Object或 Variant,用户定义类型,或对象类型。所声明的每个变量都要有一个单独的 As type 子句。 


说明

Public 语句声明的变量在所有应用程序的所有没有使用 Option Private Module 的模块的任何过程中都是可用的;若该模块使用了 Option Private Module,则该变量只是在其所属工程中是公用的。

小心 不能在类模块中使用 Public 语句来声明一个定长的字符串变量。

使用 Public 语句可以声明变量的数据类型。例如,下面的语句声明了一个 Integer 类型的变量。

Public NumberOfEmployees As Integer

也可以使用 Public 语句来声明变量的对象类型。下面的语句为工作表的新实例声明了一个变量。

Public X As New Worksheet

如果在定义对象变量时没有使用 New 关键字,则在使用该变量之前,必须使用 Set 语句将一个已有的对象赋给这个引用对象的变量。在被赋值之前,所声明的这个对象变量有一个特定值 Nothing,这个值表示该变量没有指向任何对象的实例。

可以用带空圆括号的 Public 语句来声明动态数组。在声明了动态数组之后,可以在过程内用 ReDim 语句来定义该数组的维数和元素。如果试图在 Private、Public 或 Dim 语句中重定义一个已被显式定义了大小的数组的维数,就会发生错误。

如果不指定数据类型或对象类型,且在模块中没有使用 Deftype 语句,则按缺省情况该变量为 Variant 类型。

当初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (""),而定长的字符串则用 0 填充。Variant 变量被初始化为 Empty。用户自定义类型的变量的每个元素都作为各自独立的变量进行初始化。
--------------------编程问答-------------------- Private 语句

      

在模块级别中使用,用于声明私有变量及分配存储空间。

语法

Private [WithEvents] varname[([subscripts])] [As [New] type] [,[WithEvents] varname[([subscripts])] [As [New] type]] . . .

Private 语句的语法包含下面部分:

部分 描述 
WithEvents 可选的。关键字,说明 varname 是用来响应由 ActiveX 对象所触发的事件的对象变量。只有在类模块中才是合法的。使用 WithEvents,可以定义任意个所需的单变量,但不能用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。 
varname 必需的。变量的名称;遵循标准的变量命名约定。 
subscripts 可选的。数组变量的维数;最多可以定义 60 维的多维数组。subscripts 参数的使用语法如下: 
  [lower To] upper [,[lower To] upper] . . . 
  如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有 Option Base 语句则下界为 0。 
New 可选的。使其可以隐式地创建对象的关键字。如果使用 New 声明对象变量,则在第一次引用该变量时创建该对象的新实例,因此不必使用 Set 语句来对该对象引用赋值。New 关键字不能声明任何内部数据类型的变量以及从属对象的实例,也不能与 WithEvents 一起使用。 
type 可选的。变量的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对可变长的字符串)、String * length(对定长的字符串)、Object、Variant、用户定义类型或对象类型。所声明的每个变量都要一个单独的 As type 子句。 


说明

Private 变量只能在包含其声明的模块中使用。

可以使用 Private 语句声明变量的数据类型。例如,下面的语句声明了一个 Integer 类型的变量。

Private NumberOfEmployees As Integer

也可以使用 Private 语句来声明变量的对象类型。下面的语句为工作表的新实例声明了一个变量。

Private X As New Worksheet

如果在定义对象变量时没有使用 New 关键字,则在使用该变量之前,必须使用 Set 语句将一个已有的对象赋给该引用对象的变量。在赋值之前,所声明的这个对象变量有一个特定值 Nothing,这个值表示该变量没有指向任何对象的实例。

如果不指定数据类型或对象类型,且在模块中没有使用 Deftype 语句,则按缺省情况该变量为 Variant 类型。

可以用带空圆括号的 Private 语句来声明动态数组,然后可以在过程内用 ReDim 语句来定义该数组的维数和元素。如果试图在 Private,Public 或 Dim 语句中重新定义一个已显式定义了大小的数组的维数,就会发生错误。

当初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (""),而定长的字符串则用 0 填充。Variant 变量被初始化为 Empty。用户自定义类型的变量的每个元素作为各自独立的变量进行初始化。

注意 当在过程中使用 Private 语句时,通常将 Private 
--------------------编程问答-------------------- .....实现一个功能用不同的方法本身就没错啊...

叫你解题也是希望有很多种方法解的 --------------------编程问答-------------------- 别学一题多解,要学一解多题。 --------------------编程问答-------------------- 1.简单的说,public定义的变量和函数,可以被其它的窗体、模块和控件调用;private定义的变量和函数,只能被改窗体、模块和控件本身调用。
2.这个看个人用哪个比较熟练而已,没有明确定义。
3.一般都是将sub main()模块中设置为启动,将程序的一些公共变量等读入内容中,直接用登陆窗体启动也可以,但如果程序有更新的话,修改登陆窗体较容易出现错误,也影响程序的运行效率。
4.没有标准的东西,但一般都有一些潜规则,比如对程序的一些注释的位置和方法,但变量定义和编码风格,根据个人和所在公司不同,都会有一些差别。 --------------------编程问答--------------------
引用楼主 tiger5401 的回复:
接触了VB几天,很多问题搞不伶清
1.在通用模块里用PUBLIC和private申明变量有什么不同,都是怎么用的
2.datagrid和MSHflexgrid有什么不同,看了很多程序,一会用这个一会用那个,到底什么情况下该用什么
3.设定启动的时候是用sub main()还是直接启动登陆窗体,这2个都有什么优缺点呢
4.为什么看了这么多示例,每个人写的相同功能的程序的代码都不一样呢,有规范吗,还是中国程序员就是这样
搞的越多头越大,自学真是伤脑筋啊,没个人指点

1.全局变量与私有变量的不同。
2.datagrid主要与数据库绑定使用,无法单独使用;mshflexgrid可以与数据库绑定使用,也可以不绑定使用。
3.有界面,一般直接启动登录窗体,无界面一般用sub main();注意:我只是说的一般用法。
4.写成程序我们是为了完成任务,只要能完成任务,你怎么写大概没人管你。

--------------------编程问答-------------------- 你看的是什么书啊?不是哥说,这是最基础的东西,书上应该介绍有的,多看看书吧,如果没有,就不要看这种书了。。。。 --------------------编程问答-------------------- 明白了,谢谢各位。大虾也不要喷我啊,我说了是个新新人,不明白才到这里问,看书也不是什么都能搞明白的 --------------------编程问答-------------------- 我来欢迎新人............

--------------------编程问答-------------------- 你都没学怎么可能会 --------------------编程问答-------------------- 有志者事竟成。冰冻三尺 --------------------编程问答-------------------- 踏实才能学知识 --------------------编程问答-------------------- 坚持就是胜利
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,