1、记录类型定义
成员的类型声明格式为:
成员名 As 数据类型
注意:
例如:
Type Student
Num As Integer Name As String *20 '定长字符串(20个) Sex As String*1 '定长字符串(1个) Age As Integer Score As single Addr As String
End Type
该例定义了一个类型名为:“Student”六个成员的记录集合。
使用 Type 语句声明了一个记录类型后,就可以在该声明范围内的任何位置声明该类型的变量。可以使用 Dim、Private、Public、ReDim 或 Static 来声明记录类型的变量。对同一种用户定义类型,可以声明为局部的、私有的或公用的模块级变量。
下表介绍了在什么地方声明用户定义类型和该类型的变量及其作用范围。
过程/模块 |
将用户定义类型创建成为… |
用户定义类型的变量可以被声明成… |
过程 标准模块 窗体模块 类模块 |
不适用 私有或公用 仅私有 私有或公用 |
仅局部 私有或公用 仅私有 私有或公用 |
缺省情况下,用Type语句声明的记录类型是公有的,但任何公有的声明和定义只能放在标准模块的声明部分,因此,在窗体模块或类模块的声明部分定义用户自定义类型时,一定要加上Private关键字。
例如,在一个标准模块中创建一个记录有关公司雇员信息的用户定义类型时,必须使用关键字Private:
Private Type Employee
ID As Integer Name As String *20 Salary As Cureency
End Type
记录类型中的成员可以是数组。包括:静态数组和动态数组。例如:
Type SystemInfo
CPU As Varint Memory As Long DiskDrives(25) As String'静态数组(此处也可以是动态数组,即可以改为DiskDrives() As String) VideoColore As Integer Cost As Currency PurchaseDate As Variant
End Type
2、定义记录类型变量
定义了一个记录类型之后,可以用Dim(或Public,Static)来声明拥有这种数据类型的变量。例 如:
Dim Student1,Student2 As Student
定义Student1和Student2为Student之后,Student1和Student2就具有了Student类型的结构。
Student1
1001 |
Zhang Zhen |
M |
18 |
90 |
Shanghai |
Student2
1002 |
Wang Chen |
M |
18 |
95 |
Beijing |
3、赋值和检索值
对记录类型变量的元素赋值和检索类似于对象属性的设置和获取。例如:
MySystem.CPU="486"
If MySystem.PurchaseDate>#1/1/92# Then…
如果两个变量都属于同一个用户定义类型,也可将其中一个变量赋给另一个变量。这种赋值是将一个变量的所有元素赋给另一个变量的对应元素。例如:
YourSystem=MySystem (两者均为记录类型)
记录中的成员的数据也可以是记录类型,称之为嵌套记录。
4、记录数组
一个记录变量可以是一组数据(如一个学生的学号、姓名、成绩……等数据)。如果对一个班的学生的数据进行统计与处理,显然应该使用记录数组。记录数组与以前的数组不同之处在于每个数组元素都是一个记录类型的数据。下面的示例完成对记录数组的初始化。
Private Type Student '定义记录类型
Name As String * 20 Score As Single
End Type
可以采用访问对象中的属性的方法来访问记录中的元素。
Dim Students(1 To 2) As Student Students(1).Name = "Li Pin" Students(1).Score = 90 Students(2).Name = "Liu Jun" Students(2).Score = 80
记录数组也可以是动态数组,例如
Dim Students() As Student ReDim Students(2) '重新定义动态数组
|